1 // Boost string_algo library list_traits.hpp header file ---------------------------// 2 3 // Copyright Pavol Droba 2002-2003. 4 // 5 // Distributed under the Boost Software License, Version 1.0. 6 // (See accompanying file LICENSE_1_0.txt or copy at 7 // http://www.boost.org/LICENSE_1_0.txt) 8 9 // See http://www.boost.org/ for updates, documentation, and revision history. 10 11 #ifndef BOOST_STRING_STD_LIST_TRAITS_HPP 12 #define BOOST_STRING_STD_LIST_TRAITS_HPP 13 14 #include <boost/algorithm/string/yes_no_type.hpp> 15 #include <list> 16 #include <boost/algorithm/string/sequence_traits.hpp> 17 18 namespace boost { 19 namespace algorithm { 20 21 // std::list<> traits -----------------------------------------------// 22 23 24 // stable iterators trait 25 template<typename T, typename AllocT> 26 class has_stable_iterators< ::std::list<T,AllocT> > 27 { 28 public: 29 #if BOOST_WORKAROUND( __IBMCPP__, <= 600 ) 30 enum { value = true }; 31 #else 32 BOOST_STATIC_CONSTANT(bool, value=true); 33 #endif // BOOST_WORKAROUND( __IBMCPP__, <= 600 ) 34 typedef mpl::bool_<has_stable_iterators<T>::value> type; 35 }; 36 37 // const time insert trait 38 template<typename T, typename AllocT> 39 class has_const_time_insert< ::std::list<T,AllocT> > 40 { 41 public: 42 #if BOOST_WORKAROUND( __IBMCPP__, <= 600 ) 43 enum { value = true }; 44 #else 45 BOOST_STATIC_CONSTANT(bool, value=true); 46 #endif // BOOST_WORKAROUND( __IBMCPP__, <= 600 ) 47 typedef mpl::bool_<has_const_time_insert<T>::value> type; 48 }; 49 50 // const time erase trait 51 template<typename T, typename AllocT> 52 class has_const_time_erase< ::std::list<T,AllocT> > 53 { 54 public: 55 #if BOOST_WORKAROUND( __IBMCPP__, <= 600 ) 56 enum { value = true }; 57 #else 58 BOOST_STATIC_CONSTANT(bool, value=true); 59 #endif // BOOST_WORKAROUND( __IBMCPP__, <= 600 ) 60 typedef mpl::bool_<has_const_time_erase<T>::value> type; 61 }; 62 63 64 } // namespace algorithm 65 } // namespace boost 66 67 68 #endif // BOOST_STRING_STD_LIST_TRAITS_HPP 69