1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- // Boost string_algo library formatter_regex.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_REGEX_DETAIL_HPP
- #define BOOST_STRING_FORMATTER_REGEX_DETAIL_HPP
- #include <boost/algorithm/string/config.hpp>
- #include <string>
- #include <boost/regex.hpp>
- #include <boost/algorithm/string/detail/finder_regex.hpp>
- namespace boost {
- namespace algorithm {
- namespace detail {
- // regex format functor -----------------------------------------//
- // regex format functor
- template<typename StringT>
- struct regex_formatF
- {
- private:
- typedef StringT result_type;
- typedef BOOST_STRING_TYPENAME StringT::value_type char_type;
- public:
- // Construction
- regex_formatF( const StringT& Fmt, match_flag_type Flags=format_default ) :
- m_Fmt(Fmt), m_Flags( Flags ) {}
- template<typename InputIteratorT>
- result_type operator()(
- const regex_search_result<InputIteratorT>& Replace ) const
- {
- if ( Replace.empty() )
- {
- return result_type();
- }
- else
- {
- return Replace.match_results().format( m_Fmt, m_Flags );
- }
- }
- private:
- const StringT& m_Fmt;
- match_flag_type m_Flags;
- };
-
- } // namespace detail
- } // namespace algorithm
- } // namespace boost
- #endif // BOOST_STRING_FORMATTER_DETAIL_HPP
|