string_traits.hpp 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. // Boost string_algo library string_traits.hpp header file ---------------------------//
  2. // Copyright Pavol Droba 2002-2003.
  3. //
  4. // Distributed under the Boost Software License, Version 1.0.
  5. // (See accompanying file LICENSE_1_0.txt or copy at
  6. // http://www.boost.org/LICENSE_1_0.txt)
  7. // See http://www.boost.org/ for updates, documentation, and revision history.
  8. #ifndef BOOST_STRING_STD_STRING_TRAITS_HPP
  9. #define BOOST_STRING_STD_STRING_TRAITS_HPP
  10. #include <boost/algorithm/string/yes_no_type.hpp>
  11. #include <string>
  12. #include <boost/algorithm/string/sequence_traits.hpp>
  13. namespace boost {
  14. namespace algorithm {
  15. // std::basic_string<> traits -----------------------------------------------//
  16. // native replace trait
  17. template<typename T, typename TraitsT, typename AllocT>
  18. class has_native_replace< std::basic_string<T, TraitsT, AllocT> >
  19. {
  20. public:
  21. #if BOOST_WORKAROUND( __IBMCPP__, <= 600 )
  22. enum { value = true } ;
  23. #else
  24. BOOST_STATIC_CONSTANT(bool, value=true);
  25. #endif // BOOST_WORKAROUND( __IBMCPP__, <= 600 )
  26. typedef mpl::bool_<has_native_replace<T>::value> type;
  27. };
  28. } // namespace algorithm
  29. } // namespace boost
  30. #endif // BOOST_STRING_LIST_TRAITS_HPP