]> git.sesse.net Git - casparcg/blob - dependencies/boost/boost/algorithm/string/regex_find_format.hpp
Manually merged pull request #222
[casparcg] / dependencies / boost / boost / algorithm / string / regex_find_format.hpp
1 //  Boost string_algo library regex_find_format.hpp header file  ---------------------------//
2
3 //  Copyright Pavol Droba 2002-2003.
4 //
5 // Distributed under the Boost Software License, Version 1.0.
6 //    (See accompanying file LICENSE_1_0.txt or copy at
7 //          http://www.boost.org/LICENSE_1_0.txt)
8
9 //  See http://www.boost.org/ for updates, documentation, and revision history.
10
11 #ifndef BOOST_STRING_REGEX_FIND_FORMAT_HPP
12 #define BOOST_STRING_REGEX_FIND_FORMAT_HPP
13
14 #include <boost/algorithm/string/config.hpp>
15 #include <boost/regex.hpp>
16 #include <boost/algorithm/string/detail/finder_regex.hpp>
17 #include <boost/algorithm/string/detail/formatter_regex.hpp>
18
19 /*! \file
20     Defines the \c regex_finder and \c regex_formatter generators. These two functors
21     are designed to work together. \c regex_formatter uses additional information
22     about a match contained in the regex_finder search result.
23 */
24
25 namespace boost {
26     namespace algorithm {
27
28 //  regex_finder  -----------------------------------------------//
29
30         //! "Regex" finder 
31         /*!
32             Construct the \c regex_finder. Finder uses the regex engine to search
33             for a match.
34             Result is given in \c regex_search_result. This is an extension
35             of the iterator_range. In addition it containes match results 
36             from the \c regex_search algorithm.
37
38             \param Rx A regular expression
39             \param MatchFlags Regex search options
40             \return An instance of the \c regex_finder object
41         */
42         template< 
43             typename CharT, 
44             typename RegexTraitsT>
45         inline detail::find_regexF< basic_regex<CharT, RegexTraitsT> >
46         regex_finder(
47             const basic_regex<CharT, RegexTraitsT>& Rx,
48             match_flag_type MatchFlags=match_default )
49         {
50             return detail::
51                 find_regexF< 
52                     basic_regex<CharT, RegexTraitsT> >( Rx, MatchFlags );
53         }
54
55 //  regex_formater  ---------------------------------------------//
56
57         //! Regex formatter
58         /*!
59             Construct the \c regex_formatter. Regex formatter uses the regex engine to
60             format a match found by the \c regex_finder. 
61             This formatted it designed to closely cooperate with \c regex_finder.
62
63             \param Format Regex format definition
64             \param Flags Format flags
65             \return An instance of the \c regex_formatter functor
66         */
67        template< 
68             typename CharT, 
69             typename TraitsT, typename AllocT >
70         inline detail::regex_formatF< std::basic_string< CharT, TraitsT, AllocT > >
71         regex_formatter( 
72             const std::basic_string<CharT, TraitsT, AllocT>& Format,
73             match_flag_type Flags=format_default )
74         {
75             return 
76                 detail::regex_formatF< std::basic_string<CharT, TraitsT, AllocT> >(
77                     Format,
78                     Flags );
79         }
80
81     } // namespace algorithm
82
83     // pull the names to the boost namespace
84     using algorithm::regex_finder;
85     using algorithm::regex_formatter;
86
87 } // namespace boost
88
89
90 #endif  // BOOST_STRING_REGEX_FIND_FORMAT_HPP