summaryrefslogtreecommitdiff
path: root/boost/algorithm/string/detail/formatter_regex.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'boost/algorithm/string/detail/formatter_regex.hpp')
-rw-r--r--boost/algorithm/string/detail/formatter_regex.hpp61
1 files changed, 61 insertions, 0 deletions
diff --git a/boost/algorithm/string/detail/formatter_regex.hpp b/boost/algorithm/string/detail/formatter_regex.hpp
new file mode 100644
index 000000000..5f26407be
--- /dev/null
+++ b/boost/algorithm/string/detail/formatter_regex.hpp
@@ -0,0 +1,61 @@
+// 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