4. Creating Data

4.1. Direct

4.2. Using “Query” Objects

4.2.1. Metadata

Need a legend for things like this….

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
// string, value
metaPair &add( const string &key, const           T  &val, const CONVERTER &converter = CONVERTER{} );
metaPair &add( const string &key, const Defaulted<T> &def, const CONVERTER &converter = CONVERTER{} );

// Meta<void>, value
metaPair &add( const Meta<void> &kwd, const T &val = T{}, const CONVERTER &converter = CONVERTER{} );

// Meta<TYPE>, value
metaPair &add( const Meta<TYPE,CONVERTER> &kwd, const           T  &val = T{} );
metaPair &add( const Meta<TYPE,CONVERTER> &kwd, const Defaulted<T> &def );

// Meta<optional>, value
metaPair &add( const Meta<optional<TYPE>,CONVERTER> &kwd, const           T  &val = T{} );
bool      add( const Meta<optional<TYPE>,CONVERTER> &kwd, const optional <T> &opt );
bool      add( const Meta<optional<TYPE>,CONVERTER> &kwd, const Defaulted<T> &def );

// Meta<Defaulted>, value
metaPair &add( const Meta<Defaulted<TYPE>,CONVERTER> &kwd, const           T  &val = T{} );
bool      add( const Meta<Defaulted<TYPE>,CONVERTER> &kwd, const optional <T> &opt );
bool      add( const Meta<Defaulted<TYPE>,CONVERTER> &kwd, const Defaulted<T> &def );

4.2.2. Children

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// string
Node &add( const string &name = "" );

// value
Node &add( const           T  &val );
Node &add( const Defaulted<T> &def );

// Child<void>, value
Node &add( const Child<void,ALLOW,void,FILTER> &kwd, const T &val = T{} );

// Child<TYPE>, value
Node &add( const Child<TYPE,ALLOW,CONVERTER,FILTER> &kwd, const           T  &val = T{} );
Node &add( const Child<TYPE,ALLOW,CONVERTER,FILTER> &kwd, const Defaulted<T> &def       );

// Child<optional>, value
Node &add( const Child<optional<TYPE>,ALLOW,CONVERTER,FILTER> &kwd, const           T  &val = T{} );
bool  add( const Child<optional<TYPE>,ALLOW,CONVERTER,FILTER> &kwd, const optional <T> &opt       );
bool  add( const Child<optional<TYPE>,ALLOW,CONVERTER,FILTER> &kwd, const Defaulted<T> &def       );

// Child<Defaulted>, value
Node &add( const Child<Defaulted<TYPE>,ALLOW,CONVERTER,FILTER> &kwd, const           T  &val = T{} );
bool  add( const Child<Defaulted<TYPE>,ALLOW,CONVERTER,FILTER> &kwd, const optional <T> &opt       );
bool  add( const Child<Defaulted<TYPE>,ALLOW,CONVERTER,FILTER> &kwd, const Defaulted<T> &def       );

// Child<*> w/allow::many, container
void add( const Child<TYPE,allow::many,CONVERTER,FILTER> &kwd, const CONTAINER<T,Args...> &container );