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