1 /*-----------------------------------------------------------------------------+ 2 Copyright (c) 2007-2010: Joachim Faulhaber 3 +------------------------------------------------------------------------------+ 4 Distributed under the Boost Software License, Version 1.0. 5 (See accompanying file LICENCE.txt or copy at 6 http://www.boost.org/LICENSE_1_0.txt) 7 +-----------------------------------------------------------------------------*/ 8 #ifndef BOOST_ICL_DETAIL_STD_SET_HPP_JOFA_101007 9 #define BOOST_ICL_DETAIL_STD_SET_HPP_JOFA_101007 10 11 #include <set> 12 #include <boost/config.hpp> 13 #include <boost/icl/type_traits/type_to_string.hpp> 14 #include <boost/icl/type_traits/is_set.hpp> 15 16 17 namespace boost{namespace icl 18 { 19 20 template <class Type> 21 struct is_set<std::set<Type> > 22 { 23 typedef is_set<std::set<Type> > type; 24 BOOST_STATIC_CONSTANT(bool, value = true); 25 }; 26 27 28 template <class Type> 29 struct type_to_string<std::set<Type> > 30 { applyboost::icl::type_to_string31 static std::string apply() 32 { return "set<"+ type_to_string<Type>::apply() +">"; } 33 }; 34 35 template <class Type> 36 struct type_to_string<std::set<Type, std::greater<Type> > > 37 { applyboost::icl::type_to_string38 static std::string apply() 39 { return "set<"+ type_to_string<Type>::apply() +" g>"; } 40 }; 41 42 }} // namespace icl boost 43 44 #endif // BOOST_ICL_DETAIL_STD_SET_HPP_JOFA_101007 45 46