1 /*
2  *
3  * Copyright (c) 1998-2002
4  * John Maddock
5  *
6  * Use, modification and distribution are subject to the
7  * Boost Software License, Version 1.0. (See accompanying file
8  * LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9  *
10  */
11 
12  /*
13   *   LOCATION:    see http://www.boost.org for most recent version.
14   *   FILE         regex_format.hpp
15   *   VERSION      see <boost/version.hpp>
16   *   DESCRIPTION: Provides formatting output routines for search and replace
17   *                operations.  Note this is an internal header file included
18   *                by regex.hpp, do not include on its own.
19   */
20 
21 #ifndef BOOST_REGEX_V4_REGEX_MERGE_HPP
22 #define BOOST_REGEX_V4_REGEX_MERGE_HPP
23 
24 
25 namespace boost{
26 
27 #ifdef BOOST_MSVC
28 #pragma warning(push)
29 #pragma warning(disable: 4103)
30 #endif
31 #ifdef BOOST_HAS_ABI_HEADERS
32 #  include BOOST_ABI_PREFIX
33 #endif
34 #ifdef BOOST_MSVC
35 #pragma warning(pop)
36 #endif
37 
38 template <class OutputIterator, class Iterator, class traits, class charT>
regex_merge(OutputIterator out,Iterator first,Iterator last,const basic_regex<charT,traits> & e,const charT * fmt,match_flag_type flags=match_default)39 inline OutputIterator regex_merge(OutputIterator out,
40                          Iterator first,
41                          Iterator last,
42                          const basic_regex<charT, traits>& e,
43                          const charT* fmt,
44                          match_flag_type flags = match_default)
45 {
46    return regex_replace(out, first, last, e, fmt, flags);
47 }
48 
49 template <class OutputIterator, class Iterator, class traits, class charT>
regex_merge(OutputIterator out,Iterator first,Iterator last,const basic_regex<charT,traits> & e,const std::basic_string<charT> & fmt,match_flag_type flags=match_default)50 inline OutputIterator regex_merge(OutputIterator out,
51                          Iterator first,
52                          Iterator last,
53                          const basic_regex<charT, traits>& e,
54                          const std::basic_string<charT>& fmt,
55                          match_flag_type flags = match_default)
56 {
57    return regex_merge(out, first, last, e, fmt.c_str(), flags);
58 }
59 
60 template <class traits, class charT>
regex_merge(const std::basic_string<charT> & s,const basic_regex<charT,traits> & e,const charT * fmt,match_flag_type flags=match_default)61 inline std::basic_string<charT> regex_merge(const std::basic_string<charT>& s,
62                          const basic_regex<charT, traits>& e,
63                          const charT* fmt,
64                          match_flag_type flags = match_default)
65 {
66    return regex_replace(s, e, fmt, flags);
67 }
68 
69 template <class traits, class charT>
regex_merge(const std::basic_string<charT> & s,const basic_regex<charT,traits> & e,const std::basic_string<charT> & fmt,match_flag_type flags=match_default)70 inline std::basic_string<charT> regex_merge(const std::basic_string<charT>& s,
71                          const basic_regex<charT, traits>& e,
72                          const std::basic_string<charT>& fmt,
73                          match_flag_type flags = match_default)
74 {
75    return regex_replace(s, e, fmt, flags);
76 }
77 
78 #ifdef BOOST_MSVC
79 #pragma warning(push)
80 #pragma warning(disable: 4103)
81 #endif
82 #ifdef BOOST_HAS_ABI_HEADERS
83 #  include BOOST_ABI_SUFFIX
84 #endif
85 #ifdef BOOST_MSVC
86 #pragma warning(pop)
87 #endif
88 
89 } // namespace boost
90 
91 #endif  // BOOST_REGEX_V4_REGEX_MERGE_HPP
92 
93 
94