diff options
Diffstat (limited to 'contrib/src/boost/algorithm/string/detail/case_conv.hpp')
-rw-r--r-- | contrib/src/boost/algorithm/string/detail/case_conv.hpp | 246 |
1 files changed, 123 insertions, 123 deletions
diff --git a/contrib/src/boost/algorithm/string/detail/case_conv.hpp b/contrib/src/boost/algorithm/string/detail/case_conv.hpp index bc0891d..42621c7 100644 --- a/contrib/src/boost/algorithm/string/detail/case_conv.hpp +++ b/contrib/src/boost/algorithm/string/detail/case_conv.hpp @@ -1,123 +1,123 @@ -// Boost string_algo library string_funct.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_CASE_CONV_DETAIL_HPP
-#define BOOST_STRING_CASE_CONV_DETAIL_HPP
-
-#include <boost/algorithm/string/config.hpp>
-#include <locale>
-#include <functional>
-
-#include <boost/type_traits/make_unsigned.hpp>
-
-namespace boost {
- namespace algorithm {
- namespace detail {
-
-// case conversion functors -----------------------------------------------//
-
-#if BOOST_WORKAROUND(BOOST_MSVC, >= 1400)
-#pragma warning(push)
-#pragma warning(disable:4512) //assignment operator could not be generated
-#endif
-
- // a tolower functor
- template<typename CharT>
- struct to_lowerF : public std::unary_function<CharT, CharT>
- {
- // Constructor
- to_lowerF( const std::locale& Loc ) : m_Loc( &Loc ) {}
-
- // Operation
- CharT operator ()( CharT Ch ) const
- {
- #if defined(__BORLANDC__) && (__BORLANDC__ >= 0x560) && (__BORLANDC__ <= 0x564) && !defined(_USE_OLD_RW_STL)
- return std::tolower( static_cast<typename boost::make_unsigned <CharT>::type> ( Ch ));
- #else
- return std::tolower<CharT>( Ch, *m_Loc );
- #endif
- }
- private:
- const std::locale* m_Loc;
- };
-
- // a toupper functor
- template<typename CharT>
- struct to_upperF : public std::unary_function<CharT, CharT>
- {
- // Constructor
- to_upperF( const std::locale& Loc ) : m_Loc( &Loc ) {}
-
- // Operation
- CharT operator ()( CharT Ch ) const
- {
- #if defined(__BORLANDC__) && (__BORLANDC__ >= 0x560) && (__BORLANDC__ <= 0x564) && !defined(_USE_OLD_RW_STL)
- return std::toupper( static_cast<typename boost::make_unsigned <CharT>::type> ( Ch ));
- #else
- return std::toupper<CharT>( Ch, *m_Loc );
- #endif
- }
- private:
- const std::locale* m_Loc;
- };
-
-#if BOOST_WORKAROUND(BOOST_MSVC, >= 1400)
-#pragma warning(pop)
-#endif
-
-// algorithm implementation -------------------------------------------------------------------------
-
- // Transform a range
- template<typename OutputIteratorT, typename RangeT, typename FunctorT>
- OutputIteratorT transform_range_copy(
- OutputIteratorT Output,
- const RangeT& Input,
- FunctorT Functor)
- {
- return std::transform(
- ::boost::begin(Input),
- ::boost::end(Input),
- Output,
- Functor);
- }
-
- // Transform a range (in-place)
- template<typename RangeT, typename FunctorT>
- void transform_range(
- const RangeT& Input,
- FunctorT Functor)
- {
- std::transform(
- ::boost::begin(Input),
- ::boost::end(Input),
- ::boost::begin(Input),
- Functor);
- }
-
- template<typename SequenceT, typename RangeT, typename FunctorT>
- inline SequenceT transform_range_copy(
- const RangeT& Input,
- FunctorT Functor)
- {
- return SequenceT(
- ::boost::make_transform_iterator(
- ::boost::begin(Input),
- Functor),
- ::boost::make_transform_iterator(
- ::boost::end(Input),
- Functor));
- }
-
- } // namespace detail
- } // namespace algorithm
-} // namespace boost
-
-
-#endif // BOOST_STRING_CASE_CONV_DETAIL_HPP
+// Boost string_algo library string_funct.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_CASE_CONV_DETAIL_HPP +#define BOOST_STRING_CASE_CONV_DETAIL_HPP + +#include <boost/algorithm/string/config.hpp> +#include <locale> +#include <functional> + +#include <boost/type_traits/make_unsigned.hpp> + +namespace boost { + namespace algorithm { + namespace detail { + +// case conversion functors -----------------------------------------------// + +#if BOOST_WORKAROUND(BOOST_MSVC, >= 1400) +#pragma warning(push) +#pragma warning(disable:4512) //assignment operator could not be generated +#endif + + // a tolower functor + template<typename CharT> + struct to_lowerF : public std::unary_function<CharT, CharT> + { + // Constructor + to_lowerF( const std::locale& Loc ) : m_Loc( &Loc ) {} + + // Operation + CharT operator ()( CharT Ch ) const + { + #if defined(__BORLANDC__) && (__BORLANDC__ >= 0x560) && (__BORLANDC__ <= 0x564) && !defined(_USE_OLD_RW_STL) + return std::tolower( static_cast<typename boost::make_unsigned <CharT>::type> ( Ch )); + #else + return std::tolower<CharT>( Ch, *m_Loc ); + #endif + } + private: + const std::locale* m_Loc; + }; + + // a toupper functor + template<typename CharT> + struct to_upperF : public std::unary_function<CharT, CharT> + { + // Constructor + to_upperF( const std::locale& Loc ) : m_Loc( &Loc ) {} + + // Operation + CharT operator ()( CharT Ch ) const + { + #if defined(__BORLANDC__) && (__BORLANDC__ >= 0x560) && (__BORLANDC__ <= 0x564) && !defined(_USE_OLD_RW_STL) + return std::toupper( static_cast<typename boost::make_unsigned <CharT>::type> ( Ch )); + #else + return std::toupper<CharT>( Ch, *m_Loc ); + #endif + } + private: + const std::locale* m_Loc; + }; + +#if BOOST_WORKAROUND(BOOST_MSVC, >= 1400) +#pragma warning(pop) +#endif + +// algorithm implementation ------------------------------------------------------------------------- + + // Transform a range + template<typename OutputIteratorT, typename RangeT, typename FunctorT> + OutputIteratorT transform_range_copy( + OutputIteratorT Output, + const RangeT& Input, + FunctorT Functor) + { + return std::transform( + ::boost::begin(Input), + ::boost::end(Input), + Output, + Functor); + } + + // Transform a range (in-place) + template<typename RangeT, typename FunctorT> + void transform_range( + const RangeT& Input, + FunctorT Functor) + { + std::transform( + ::boost::begin(Input), + ::boost::end(Input), + ::boost::begin(Input), + Functor); + } + + template<typename SequenceT, typename RangeT, typename FunctorT> + inline SequenceT transform_range_copy( + const RangeT& Input, + FunctorT Functor) + { + return SequenceT( + ::boost::make_transform_iterator( + ::boost::begin(Input), + Functor), + ::boost::make_transform_iterator( + ::boost::end(Input), + Functor)); + } + + } // namespace detail + } // namespace algorithm +} // namespace boost + + +#endif // BOOST_STRING_CASE_CONV_DETAIL_HPP |