PageRenderTime 17ms CodeModel.GetById 10ms app.highlight 5ms RepoModel.GetById 1ms app.codeStats 0ms

/Src/Dependencies/Boost/boost/algorithm/string/std/rope_traits.hpp

http://hadesmem.googlecode.com/
C++ Header | 101 lines | 65 code | 20 blank | 16 comment | 0 complexity | 05ff86b628aa288b3bb308de8ebcbc3b MD5 | raw file
  1//  Boost string_algo library string_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_ROPE_TRAITS_HPP
 12#define BOOST_STRING_STD_ROPE_TRAITS_HPP
 13
 14#include <boost/algorithm/string/yes_no_type.hpp>
 15#include <rope>
 16#include <boost/algorithm/string/sequence_traits.hpp>
 17
 18namespace boost {
 19    namespace algorithm {
 20
 21//  SGI's std::rope<> traits  -----------------------------------------------//
 22
 23#ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 24
 25        // native replace tester
 26        template<typename T, typename TraitsT, typename AllocT>
 27        yes_type has_native_replace_tester( const std::rope<T, TraitsT, AllocT>* );
 28
 29        // stable iterators tester
 30        template<typename T, typename TraitsT, typename AllocT>
 31        yes_type has_stable_iterators_tester( const std::rope<T, TraitsT, AllocT>* );
 32
 33        // const time insert tester
 34        template<typename T, typename TraitsT, typename AllocT>
 35        yes_type has_const_time_insert_tester( const std::rope<T, TraitsT, AllocT>* );
 36
 37        // const time erase tester
 38        template<typename T, typename TraitsT, typename AllocT>
 39        yes_type has_const_time_erase_tester( const std::rope<T, TraitsT, AllocT>* );
 40
 41#else // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 42    
 43    // native replace trait
 44        template<typename T, typename TraitsT, typename AllocT>
 45        class has_native_replace< std::rope<T,TraitsT,AllocT> >
 46        {
 47        public:
 48#if BOOST_WORKAROUND( __IBMCPP__, <= 600 )
 49            enum { value = true };
 50#else
 51            BOOST_STATIC_CONSTANT(bool, value=true);
 52#endif // BOOST_WORKAROUND( __IBMCPP__, <= 600 )
 53            typedef mpl::bool_<value> type;     
 54        };
 55
 56    // stable iterators trait
 57        template<typename T, typename TraitsT, typename AllocT>
 58        class has_stable_iterators< std::rope<T,TraitsT,AllocT> >
 59        {
 60        public:
 61#if BOOST_WORKAROUND( __IBMCPP__, <= 600 )
 62            enum { value = true };
 63#else
 64            BOOST_STATIC_CONSTANT(bool, value=true);
 65#endif // BOOST_WORKAROUND( __IBMCPP__, <= 600 )
 66            typedef mpl::bool_<value> type;     
 67        };
 68
 69    // const time insert trait
 70        template<typename T, typename TraitsT, typename AllocT>
 71        class has_const_time_insert< std::rope<T,TraitsT,AllocT> >
 72        {
 73        public:
 74#if BOOST_WORKAROUND( __IBMCPP__, <= 600 )
 75            enum { value = true };
 76#else
 77            BOOST_STATIC_CONSTANT(bool, value=true);
 78#endif // BOOST_WORKAROUND( __IBMCPP__, <= 600 )
 79            typedef mpl::bool_<value> type;     
 80        };
 81
 82    // const time erase trait
 83        template<typename T, typename TraitsT, typename AllocT>
 84        class has_const_time_erase< std::rope<T,TraitsT,AllocT> >
 85        {
 86        public:
 87#if BOOST_WORKAROUND( __IBMCPP__, <= 600 )
 88            enum { value = true };
 89#else
 90            BOOST_STATIC_CONSTANT(bool, value=true);
 91#endif // BOOST_WORKAROUND( __IBMCPP__, <= 600 )
 92            typedef mpl::bool_<value> type;     
 93        };
 94#endif
 95
 96
 97    } // namespace algorithm
 98} // namespace boost
 99
100
101#endif  // BOOST_STRING_ROPE_TRAITS_HPP