diff options
Diffstat (limited to 'contrib/src/boost/algorithm/string/sequence_traits.hpp')
-rw-r--r-- | contrib/src/boost/algorithm/string/sequence_traits.hpp | 240 |
1 files changed, 120 insertions, 120 deletions
diff --git a/contrib/src/boost/algorithm/string/sequence_traits.hpp b/contrib/src/boost/algorithm/string/sequence_traits.hpp index 22aa58b..be151f8 100644 --- a/contrib/src/boost/algorithm/string/sequence_traits.hpp +++ b/contrib/src/boost/algorithm/string/sequence_traits.hpp @@ -1,120 +1,120 @@ -// Boost string_algo library sequence_traits.hpp header file ---------------------------//
-
-// Copyright Pavol Droba 2002-2003.
-//
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-
-// See http://www.boost.org/ for updates, documentation, and revision history.
-
-#ifndef BOOST_STRING_SEQUENCE_TRAITS_HPP
-#define BOOST_STRING_SEQUENCE_TRAITS_HPP
-
-#include <boost/config.hpp>
-#include <boost/mpl/bool.hpp>
-#include <boost/algorithm/string/yes_no_type.hpp>
-
-/*! \file
- Traits defined in this header are used by various algorithms to achieve
- better performance for specific containers.
- Traits provide fail-safe defaults. If a container supports some of these
- features, it is possible to specialize the specific trait for this container.
- For lacking compilers, it is possible of define an override for a specific tester
- function.
-
- Due to a language restriction, it is not currently possible to define specializations for
- stl containers without including the corresponding header. To decrease the overhead
- needed by this inclusion, user can selectively include a specialization
- header for a specific container. They are located in boost/algorithm/string/stl
- directory. Alternatively she can include boost/algorithm/string/std_collection_traits.hpp
- header which contains specializations for all stl containers.
-*/
-
-namespace boost {
- namespace algorithm {
-
-// sequence traits -----------------------------------------------//
-
-
- //! Native replace trait
- /*!
- This trait specifies that the sequence has \c std::string like replace method
- */
- template< typename T >
- class has_native_replace
- {
-
- public:
-# if BOOST_WORKAROUND( __IBMCPP__, <= 600 )
- enum { value = false };
-# else
- BOOST_STATIC_CONSTANT(bool, value=false);
-# endif // BOOST_WORKAROUND( __IBMCPP__, <= 600 )
-
-
- typedef mpl::bool_<has_native_replace<T>::value> type;
- };
-
-
- //! Stable iterators trait
- /*!
- This trait specifies that the sequence has stable iterators. It means
- that operations like insert/erase/replace do not invalidate iterators.
- */
- template< typename T >
- class has_stable_iterators
- {
- public:
-# if BOOST_WORKAROUND( __IBMCPP__, <= 600 )
- enum { value = false };
-# else
- BOOST_STATIC_CONSTANT(bool, value=false);
-# endif // BOOST_WORKAROUND( __IBMCPP__, <= 600 )
-
- typedef mpl::bool_<has_stable_iterators<T>::value> type;
- };
-
-
- //! Const time insert trait
- /*!
- This trait specifies that the sequence's insert method has
- constant time complexity.
- */
- template< typename T >
- class has_const_time_insert
- {
- public:
-# if BOOST_WORKAROUND( __IBMCPP__, <= 600 )
- enum { value = false };
-# else
- BOOST_STATIC_CONSTANT(bool, value=false);
-# endif // BOOST_WORKAROUND( __IBMCPP__, <= 600 )
-
- typedef mpl::bool_<has_const_time_insert<T>::value> type;
- };
-
-
- //! Const time erase trait
- /*!
- This trait specifies that the sequence's erase method has
- constant time complexity.
- */
- template< typename T >
- class has_const_time_erase
- {
- public:
-# if BOOST_WORKAROUND( __IBMCPP__, <= 600 )
- enum { value = false };
-# else
- BOOST_STATIC_CONSTANT(bool, value=false);
-# endif // BOOST_WORKAROUND( __IBMCPP__, <= 600 )
-
- typedef mpl::bool_<has_const_time_erase<T>::value> type;
- };
-
- } // namespace algorithm
-} // namespace boost
-
-
-#endif // BOOST_STRING_SEQUENCE_TRAITS_HPP
+// Boost string_algo library sequence_traits.hpp header file ---------------------------// + +// Copyright Pavol Droba 2002-2003. +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +// See http://www.boost.org/ for updates, documentation, and revision history. + +#ifndef BOOST_STRING_SEQUENCE_TRAITS_HPP +#define BOOST_STRING_SEQUENCE_TRAITS_HPP + +#include <boost/config.hpp> +#include <boost/mpl/bool.hpp> +#include <boost/algorithm/string/yes_no_type.hpp> + +/*! \file + Traits defined in this header are used by various algorithms to achieve + better performance for specific containers. + Traits provide fail-safe defaults. If a container supports some of these + features, it is possible to specialize the specific trait for this container. + For lacking compilers, it is possible of define an override for a specific tester + function. + + Due to a language restriction, it is not currently possible to define specializations for + stl containers without including the corresponding header. To decrease the overhead + needed by this inclusion, user can selectively include a specialization + header for a specific container. They are located in boost/algorithm/string/stl + directory. Alternatively she can include boost/algorithm/string/std_collection_traits.hpp + header which contains specializations for all stl containers. +*/ + +namespace boost { + namespace algorithm { + +// sequence traits -----------------------------------------------// + + + //! Native replace trait + /*! + This trait specifies that the sequence has \c std::string like replace method + */ + template< typename T > + class has_native_replace + { + + public: +# if BOOST_WORKAROUND( __IBMCPP__, <= 600 ) + enum { value = false }; +# else + BOOST_STATIC_CONSTANT(bool, value=false); +# endif // BOOST_WORKAROUND( __IBMCPP__, <= 600 ) + + + typedef mpl::bool_<has_native_replace<T>::value> type; + }; + + + //! Stable iterators trait + /*! + This trait specifies that the sequence has stable iterators. It means + that operations like insert/erase/replace do not invalidate iterators. + */ + template< typename T > + class has_stable_iterators + { + public: +# if BOOST_WORKAROUND( __IBMCPP__, <= 600 ) + enum { value = false }; +# else + BOOST_STATIC_CONSTANT(bool, value=false); +# endif // BOOST_WORKAROUND( __IBMCPP__, <= 600 ) + + typedef mpl::bool_<has_stable_iterators<T>::value> type; + }; + + + //! Const time insert trait + /*! + This trait specifies that the sequence's insert method has + constant time complexity. + */ + template< typename T > + class has_const_time_insert + { + public: +# if BOOST_WORKAROUND( __IBMCPP__, <= 600 ) + enum { value = false }; +# else + BOOST_STATIC_CONSTANT(bool, value=false); +# endif // BOOST_WORKAROUND( __IBMCPP__, <= 600 ) + + typedef mpl::bool_<has_const_time_insert<T>::value> type; + }; + + + //! Const time erase trait + /*! + This trait specifies that the sequence's erase method has + constant time complexity. + */ + template< typename T > + class has_const_time_erase + { + public: +# if BOOST_WORKAROUND( __IBMCPP__, <= 600 ) + enum { value = false }; +# else + BOOST_STATIC_CONSTANT(bool, value=false); +# endif // BOOST_WORKAROUND( __IBMCPP__, <= 600 ) + + typedef mpl::bool_<has_const_time_erase<T>::value> type; + }; + + } // namespace algorithm +} // namespace boost + + +#endif // BOOST_STRING_SEQUENCE_TRAITS_HPP |