diff options
Diffstat (limited to '3rdParty/Boost/boost/algorithm/string/detail/formatter.hpp')
| -rw-r--r-- | 3rdParty/Boost/boost/algorithm/string/detail/formatter.hpp | 94 | 
1 files changed, 94 insertions, 0 deletions
diff --git a/3rdParty/Boost/boost/algorithm/string/detail/formatter.hpp b/3rdParty/Boost/boost/algorithm/string/detail/formatter.hpp new file mode 100644 index 0000000..bd6a780 --- /dev/null +++ b/3rdParty/Boost/boost/algorithm/string/detail/formatter.hpp @@ -0,0 +1,94 @@ +//  Boost string_algo library formatter.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_FORMATTER_DETAIL_HPP +#define BOOST_STRING_FORMATTER_DETAIL_HPP + + +#include <boost/range/iterator_range.hpp> +#include <boost/range/begin.hpp> +#include <boost/range/end.hpp> +#include <boost/range/const_iterator.hpp> + +#include <boost/algorithm/string/detail/util.hpp> + +//  generic replace functors -----------------------------------------------// + +namespace boost { +    namespace algorithm { +        namespace detail { + +//  const format functor ----------------------------------------------------// + +            // constant format functor +            template<typename RangeT> +            struct const_formatF +            { +            private: +                typedef BOOST_STRING_TYPENAME +                    range_const_iterator<RangeT>::type format_iterator; +                typedef iterator_range<format_iterator> result_type; +             +            public: +                // Construction +                const_formatF(const RangeT& Format) : +                    m_Format(::boost::begin(Format), ::boost::end(Format)) {} + +                // Operation +#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564)) +                template<typename Range2T> +                result_type& operator()(const Range2T&) +                { +                    return m_Format; +                } +#endif + +                template<typename Range2T> +                const result_type& operator()(const Range2T&) const +                { +                    return m_Format; +                } + +            private: +                result_type m_Format; +            }; + +//  identity format functor ----------------------------------------------------// + +            // identity format functor +            template<typename RangeT> +            struct identity_formatF +            { +                // Operation +                template< typename Range2T > +                const RangeT& operator()(const Range2T& Replace) const +                { +                    return RangeT(::boost::begin(Replace), ::boost::end(Replace)); +                } +            }; + +//  empty format functor ( used by erase ) ------------------------------------// +         +            // empty format functor +            template< typename CharT > +            struct empty_formatF +            { +                template< typename ReplaceT > +                empty_container<CharT> operator()(const ReplaceT&) const +                { +                    return empty_container<CharT>(); +                } +            }; + +        } // namespace detail +    } // namespace algorithm +} // namespace boost + +#endif  // BOOST_STRING_FORMATTER_DETAIL_HPP  | 
 Swift