4. Creating Data

4.1. Direct

4.2. Using “Query” Objects

4.2.1. Metadata

Need a legend for things like this….

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

4.2.2. Children

 1// string
 2Node &add( const string &name = "" );
 3
 4// value
 5Node &add( const           T  &val );
 6Node &add( const Defaulted<T> &def );
 7
 8// Child<void>, value
 9Node &add( const Child<void,ALLOW,void,FILTER> &kwd, const T &val = T{} );
10
11// Child<TYPE>, value
12Node &add( const Child<TYPE,ALLOW,CONVERTER,FILTER> &kwd, const           T  &val = T{} );
13Node &add( const Child<TYPE,ALLOW,CONVERTER,FILTER> &kwd, const Defaulted<T> &def       );
14
15// Child<optional>, value
16Node &add( const Child<optional<TYPE>,ALLOW,CONVERTER,FILTER> &kwd, const           T  &val = T{} );
17bool  add( const Child<optional<TYPE>,ALLOW,CONVERTER,FILTER> &kwd, const optional <T> &opt       );
18bool  add( const Child<optional<TYPE>,ALLOW,CONVERTER,FILTER> &kwd, const Defaulted<T> &def       );
19
20// Child<Defaulted>, value
21Node &add( const Child<Defaulted<TYPE>,ALLOW,CONVERTER,FILTER> &kwd, const           T  &val = T{} );
22bool  add( const Child<Defaulted<TYPE>,ALLOW,CONVERTER,FILTER> &kwd, const optional <T> &opt       );
23bool  add( const Child<Defaulted<TYPE>,ALLOW,CONVERTER,FILTER> &kwd, const Defaulted<T> &def       );
24
25// Child<*> w/allow::many, container
26void add( const Child<TYPE,allow::many,CONVERTER,FILTER> &kwd, const CONTAINER<T,Args...> &container );