17 #ifndef HH_SENF_Utils_Console_STLSupport_ 18 #define HH_SENF_Utils_Console_STLSupport_ 1 24 #ifdef SENF_CXX11_ENABLED 36 template <
class T,
class Alloc>
37 struct ArgumentTraits<
std::vector<T,Alloc> >
38 :
public detail::CollectionArgumentTraits< std::vector<T,Alloc>,
39 detail::PushBackFunctor >
42 template <
class T,
class Alloc>
43 struct ReturnValueTraits< std::vector<T,Alloc> >
44 :
public detail::CollectionReturnValueTraits< std::vector<T,Alloc> >
47 template <
class T,
class Alloc>
48 struct ArgumentTraits< std::list<T,Alloc> >
49 :
public detail::CollectionArgumentTraits< std::list<T,Alloc>,
50 detail::PushBackFunctor >
53 template <
class T,
class Alloc>
54 struct ReturnValueTraits< std::list<T,Alloc> >
55 :
public detail::CollectionReturnValueTraits< std::list<T,Alloc> >
58 template <
class Key,
class Compare,
class Alloc>
59 struct ArgumentTraits< std::
set<Key,Compare,Alloc> >
60 :
public detail::CollectionArgumentTraits< std::set<Key,Compare,Alloc>,
61 detail::InsertFunctor >
64 template <
class Key,
class Compare,
class Alloc>
65 struct ReturnValueTraits< std::
set<Key,Compare,Alloc> >
66 :
public detail::CollectionReturnValueTraits< std::set<Key,Compare,Alloc> >
69 template <
class Key,
class Compare,
class Alloc>
70 struct ArgumentTraits< std::multiset<Key,Compare,Alloc> >
71 :
public detail::CollectionArgumentTraits< std::multiset<Key,Compare,Alloc>,
72 detail::InsertFunctor >
75 template <
class Key,
class Compare,
class Alloc>
76 struct ReturnValueTraits< std::multiset<Key,Compare,Alloc> >
77 :
public detail::CollectionReturnValueTraits< std::multiset<Key,Compare,Alloc> >
80 template <
class Key,
class Data,
class Compare,
class Alloc>
81 struct ArgumentTraits< std::map<Key,Data,Compare,Alloc> >
82 :
public detail::MapArgumentTraits< std::map<Key,Data,Compare,Alloc> >
85 template <
class Key,
class Data,
class Compare,
class Alloc>
86 struct ReturnValueTraits< std::map<Key,Data,Compare,Alloc> >
87 :
public detail::MapReturnValueTraits< std::map<Key,Data,Compare,Alloc> >
90 template <
class Key,
class Data,
class Compare,
class Alloc>
91 struct ArgumentTraits< std::multimap<Key,Data,Compare,Alloc> >
92 :
public detail::MapArgumentTraits< std::multimap<Key,Data,Compare,Alloc> >
95 template <
class Key,
class Data,
class Compare,
class Alloc>
96 struct ReturnValueTraits< std::multimap<Key,Data,Compare,Alloc> >
97 :
public detail::MapReturnValueTraits< std::multimap<Key,Data,Compare,Alloc> >
100 template <
class T1,
class T2>
101 struct ArgumentTraits< std::pair<T1,T2> >
103 typedef std::pair<T1,T2>
type;
108 static std::string
str(type
const & value);
111 template <
class T1,
class T2>
112 struct ReturnValueTraits< std::pair<T1,T2> >
114 typedef std::pair<T1,T2>
type;
116 static void format(type
const & value, std::ostream & os);
119 #ifdef SENF_CXX11_ENABLED 121 template<
typename ...Types>
122 struct ArgumentTraits< std::tuple<Types...> >
124 typedef std::tuple<Types...>
type;
129 static std::string
str(
type const & value);
132 template<
typename ...Types>
133 struct ReturnValueTraits< std::tuple<Types...> >
135 typedef std::tuple<Types...>
type;
137 static void format(
type const & value, std::ostream & os);
static std::string str(Type const &value)
Stringify value.
static void parse(ParseCommandInfo::TokensRange const &tokens, Type &out)
Parse token range into value.
static std::string description()
String description of type.
boost::iterator_range< token_iterator > TokensRange
static bool const singleToken
void format(Type const &value, std::ostream &os)
Format return value.