X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=senf%2FUtils%2FConsole%2FSTLSupport.hh;h=5523f21d21e528e64633ce5c1d5642c85a974c67;hb=975639608e44e49058ccd52f05ffe6b21faeafef;hp=d4594888fa6cee6e328b63b033bc3c40b8a726d9;hpb=601d1f509f5bb24df167a4dd5a20da67a0af9af8;p=senf.git diff --git a/senf/Utils/Console/STLSupport.hh b/senf/Utils/Console/STLSupport.hh index d459488..5523f21 100644 --- a/senf/Utils/Console/STLSupport.hh +++ b/senf/Utils/Console/STLSupport.hh @@ -32,6 +32,7 @@ #include "Traits.hh" //#include "STLSupport.mpp" +#include "STLSupport.ih" ///////////////////////////////hh.p//////////////////////////////////////// namespace senf { @@ -39,43 +40,68 @@ namespace console { #ifndef DOXYGEN - template - struct SequenceArgumentTraits - { - typedef Sequence type; - static bool const singleToken = false; - - static void parse(ParseCommandInfo::TokensRange const & tokens, type & out); - static std::string description(); - static std::string str(type const & value); - }; - - template - struct SequenceReturnValueTraits - { - typedef Sequence type; - - static void format(type const & value, std::ostream & os); - }; - template struct ArgumentTraits< std::vector > - : public SequenceArgumentTraits< std::vector > + : public detail::CollectionArgumentTraits< std::vector, + detail::PushBackFunctor > {}; template struct ReturnValueTraits< std::vector > - : public SequenceReturnValueTraits< std::vector > + : public detail::CollectionReturnValueTraits< std::vector > {}; template struct ArgumentTraits< std::list > - : public SequenceArgumentTraits< std::list > + : public detail::CollectionArgumentTraits< std::list, + detail::PushBackFunctor > {}; template struct ReturnValueTraits< std::list > - : public SequenceReturnValueTraits< std::list > + : public detail::CollectionReturnValueTraits< std::list > + {}; + + template + struct ArgumentTraits< std::set > + : public detail::CollectionArgumentTraits< std::set, + detail::InsertFunctor > + {}; + + template + struct ReturnValueTraits< std::set > + : public detail::CollectionReturnValueTraits< std::set > + {}; + + template + struct ArgumentTraits< std::multiset > + : public detail::CollectionArgumentTraits< std::multiset, + detail::InsertFunctor > + {}; + + template + struct ReturnValueTraits< std::multiset > + : public detail::CollectionReturnValueTraits< std::multiset > + {}; + + template + struct ArgumentTraits< std::map > + : public detail::MapArgumentTraits< std::map > + {}; + + template + struct ReturnValueTraits< std::map > + : public detail::MapReturnValueTraits< std::map > + {}; + + template + struct ArgumentTraits< std::multimap > + : public detail::MapArgumentTraits< std::multimap > + {}; + + template + struct ReturnValueTraits< std::multimap > + : public detail::MapReturnValueTraits< std::multimap > {}; template @@ -104,7 +130,7 @@ namespace console { ///////////////////////////////hh.e//////////////////////////////////////// //#include "STLSupport.cci" #include "STLSupport.ct" -//#include "STLSupport.cti" +#include "STLSupport.cti" #endif