| // 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 |