imgtools/imglib/boostlibrary/boost/regex/v4/basic_regex.hpp
author jjkang
Fri, 25 Jun 2010 18:11:34 +0800
changeset 600 6d08f4a05d93
permissions -rw-r--r--
add deprecated files
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
600
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
     1
/*
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
     2
 *
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
     3
 * Copyright (c) 1998-2004
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
     4
 * John Maddock
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
     5
 *
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
     6
 * Distributed under the Boost Software License, Version 1.0.
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
     7
 * (See accompanying file LICENSE_1_0.txt or copy at
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
     8
 * http://www.boost.org/LICENSE_1_0.txt)
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
     9
 *
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
    10
 */
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
    11
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
    12
 /*
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
    13
  *   LOCATION:    see http://www.boost.org/ for most recent version.
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
    14
  *   FILE         basic_regex.cpp
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
    15
  *   VERSION      see <boost/version.hpp>
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
    16
  *   DESCRIPTION: Declares template class basic_regex.
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
    17
  */
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
    18
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
    19
#ifndef BOOST_REGEX_V4_BASIC_REGEX_HPP
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
    20
#define BOOST_REGEX_V4_BASIC_REGEX_HPP
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
    21
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
    22
#ifdef BOOST_MSVC
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
    23
#pragma warning(push)
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
    24
#pragma warning(disable: 4103)
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
    25
#endif
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
    26
#ifdef BOOST_HAS_ABI_HEADERS
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
    27
#  include BOOST_ABI_PREFIX
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
    28
#endif
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
    29
#ifdef BOOST_MSVC
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
    30
#pragma warning(pop)
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
    31
#endif
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
    32
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
    33
namespace boost{
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
    34
#ifdef BOOST_MSVC
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
    35
#pragma warning(push)
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
    36
#pragma warning(disable : 4251 4231 4660 4800)
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
    37
#endif
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
    38
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
    39
namespace re_detail{
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
    40
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
    41
//
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
    42
// forward declaration, we will need this one later:
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
    43
//
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
    44
template <class charT, class traits>
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
    45
class basic_regex_parser;
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
    46
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
    47
//
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
    48
// class regex_data:
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
    49
// represents the data we wish to expose to the matching algorithms.
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
    50
//
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
    51
template <class charT, class traits>
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
    52
struct regex_data
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
    53
{
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
    54
   typedef regex_constants::syntax_option_type   flag_type;
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
    55
   typedef std::size_t                           size_type;  
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
    56
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
    57
   regex_data(const ::boost::shared_ptr<
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
    58
      ::boost::regex_traits_wrapper<traits> >& t) 
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
    59
      : m_ptraits(t), m_expression(0), m_expression_len(0) {}
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
    60
   regex_data() 
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
    61
      : m_ptraits(new ::boost::regex_traits_wrapper<traits>()), m_expression(0), m_expression_len(0) {}
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
    62
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
    63
   ::boost::shared_ptr<
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
    64
      ::boost::regex_traits_wrapper<traits>
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
    65
      >                        m_ptraits;                 // traits class instance
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
    66
   flag_type                   m_flags;                   // flags with which we were compiled
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
    67
   int                         m_status;                  // error code (0 implies OK).
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
    68
   const charT*                m_expression;              // the original expression
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
    69
   std::ptrdiff_t              m_expression_len;          // the length of the original expression
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
    70
   size_type                   m_mark_count;              // the number of marked sub-expressions
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
    71
   re_detail::re_syntax_base*  m_first_state;             // the first state of the machine
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
    72
   unsigned                    m_restart_type;            // search optimisation type
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
    73
   unsigned char               m_startmap[1 << CHAR_BIT]; // which characters can start a match
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
    74
   unsigned int                m_can_be_null;             // whether we can match a null string
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
    75
   re_detail::raw_storage      m_data;                    // the buffer in which our states are constructed
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
    76
   typename traits::char_class_type    m_word_mask;       // mask used to determine if a character is a word character
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
    77
   std::vector<
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
    78
      std::pair<
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
    79
      std::size_t, std::size_t> > m_subs;                 // Position of sub-expressions within the *string*.
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
    80
};
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
    81
//
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
    82
// class basic_regex_implementation
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
    83
// pimpl implementation class for basic_regex.
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
    84
//
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
    85
template <class charT, class traits>
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
    86
class basic_regex_implementation
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
    87
   : public regex_data<charT, traits>
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
    88
{
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
    89
public:
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
    90
   typedef regex_constants::syntax_option_type   flag_type;
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
    91
   typedef std::ptrdiff_t                        difference_type;
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
    92
   typedef std::size_t                           size_type; 
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
    93
   typedef typename traits::locale_type          locale_type;
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
    94
   typedef const charT*                          const_iterator;
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
    95
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
    96
   basic_regex_implementation(){}
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
    97
   basic_regex_implementation(const ::boost::shared_ptr<
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
    98
      ::boost::regex_traits_wrapper<traits> >& t)
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
    99
      : regex_data<charT, traits>(t) {}
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   100
   void assign(const charT* arg_first,
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   101
                          const charT* arg_last,
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   102
                          flag_type f)
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   103
   {
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   104
      regex_data<charT, traits>* pdat = this;
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   105
      basic_regex_parser<charT, traits> parser(pdat);
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   106
      parser.parse(arg_first, arg_last, f);
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   107
   }
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   108
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   109
   locale_type BOOST_REGEX_CALL imbue(locale_type l)
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   110
   { 
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   111
      return this->m_ptraits->imbue(l); 
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   112
   }
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   113
   locale_type BOOST_REGEX_CALL getloc()const
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   114
   { 
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   115
      return this->m_ptraits->getloc(); 
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   116
   }
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   117
   std::basic_string<charT> BOOST_REGEX_CALL str()const
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   118
   {
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   119
      std::basic_string<charT> result;
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   120
      if(this->m_status == 0)
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   121
         result = std::basic_string<charT>(this->m_expression, this->m_expression_len);
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   122
      return result;
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   123
   }
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   124
   const_iterator BOOST_REGEX_CALL expression()const
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   125
   {
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   126
      return this->m_expression;
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   127
   }
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   128
   std::pair<const_iterator, const_iterator> BOOST_REGEX_CALL subexpression(std::size_t n)const
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   129
   {
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   130
      if(n == 0)
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   131
         throw std::out_of_range("0 is not a valid subexpression index.");
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   132
      const std::pair<std::size_t, std::size_t>& pi = this->m_subs.at(n - 1);
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   133
      std::pair<const_iterator, const_iterator> p(expression() + pi.first, expression() + pi.second);
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   134
      return p;
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   135
   }
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   136
   //
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   137
   // begin, end:
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   138
   const_iterator BOOST_REGEX_CALL begin()const
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   139
   { 
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   140
      return (!this->m_status ? 0 : this->m_expression); 
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   141
   }
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   142
   const_iterator BOOST_REGEX_CALL end()const
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   143
   { 
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   144
      return (!this->m_status ? 0 : this->m_expression + this->m_expression_len); 
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   145
   }
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   146
   flag_type BOOST_REGEX_CALL flags()const
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   147
   {
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   148
      return this->m_flags;
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   149
   }
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   150
   size_type BOOST_REGEX_CALL size()const
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   151
   {
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   152
      return this->m_expression_len;
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   153
   }
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   154
   int BOOST_REGEX_CALL status()const
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   155
   {
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   156
      return this->m_status;
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   157
   }
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   158
   size_type BOOST_REGEX_CALL mark_count()const
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   159
   {
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   160
      return this->m_mark_count;
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   161
   }
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   162
   const re_detail::re_syntax_base* get_first_state()const
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   163
   {
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   164
      return this->m_first_state;
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   165
   }
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   166
   unsigned get_restart_type()const
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   167
   {
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   168
      return this->m_restart_type;
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   169
   }
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   170
   const unsigned char* get_map()const
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   171
   {
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   172
      return this->m_startmap;
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   173
   }
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   174
   const ::boost::regex_traits_wrapper<traits>& get_traits()const
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   175
   {
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   176
      return *(this->m_ptraits);
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   177
   }
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   178
   bool can_be_null()const
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   179
   {
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   180
      return this->m_can_be_null;
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   181
   }
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   182
   const regex_data<charT, traits>& get_data()const
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   183
   {
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   184
      basic_regex_implementation<charT, traits> const* p = this;
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   185
      return *static_cast<const regex_data<charT, traits>*>(p);
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   186
   }
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   187
};
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   188
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   189
} // namespace re_detail
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   190
//
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   191
// class basic_regex:
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   192
// represents the compiled
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   193
// regular expression:
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   194
//
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   195
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   196
#ifdef BOOST_REGEX_NO_FWD
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   197
template <class charT, class traits = regex_traits<charT> >
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   198
#else
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   199
template <class charT, class traits >
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   200
#endif
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   201
class basic_regex : public regbase
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   202
{
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   203
public:
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   204
   // typedefs:
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   205
   typedef std::size_t                           traits_size_type;
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   206
   typedef typename traits::string_type          traits_string_type;
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   207
   typedef charT                                 char_type;
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   208
   typedef traits                                traits_type;
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   209
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   210
   typedef charT                                 value_type;
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   211
   typedef charT&                                reference;
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   212
   typedef const charT&                          const_reference;
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   213
   typedef const charT*                          const_iterator;
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   214
   typedef const_iterator                        iterator;
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   215
   typedef std::ptrdiff_t                        difference_type;
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   216
   typedef std::size_t                           size_type;   
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   217
   typedef regex_constants::syntax_option_type   flag_type;
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   218
   // locale_type
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   219
   // placeholder for actual locale type used by the
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   220
   // traits class to localise *this.
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   221
   typedef typename traits::locale_type          locale_type;
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   222
   
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   223
public:
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   224
   explicit basic_regex(){}
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   225
   explicit basic_regex(const charT* p, flag_type f = regex_constants::normal)
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   226
   {
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   227
      assign(p, f);
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   228
   }
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   229
   basic_regex(const charT* p1, const charT* p2, flag_type f = regex_constants::normal)
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   230
   {
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   231
      assign(p1, p2, f);
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   232
   }
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   233
   basic_regex(const charT* p, size_type len, flag_type f)
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   234
   {
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   235
      assign(p, len, f);
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   236
   }
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   237
   basic_regex(const basic_regex& that)
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   238
      : m_pimpl(that.m_pimpl) {}
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   239
   ~basic_regex(){}
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   240
   basic_regex& BOOST_REGEX_CALL operator=(const basic_regex& that)
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   241
   {
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   242
      return assign(that);
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   243
   }
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   244
   basic_regex& BOOST_REGEX_CALL operator=(const charT* ptr)
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   245
   {
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   246
      return assign(ptr);
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   247
   }
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   248
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   249
   //
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   250
   // assign:
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   251
   basic_regex& assign(const basic_regex& that)
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   252
   { 
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   253
      m_pimpl = that.m_pimpl;
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   254
      return *this; 
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   255
   }
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   256
   basic_regex& assign(const charT* p, flag_type f = regex_constants::normal)
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   257
   {
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   258
      return assign(p, p + traits::length(p), f);
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   259
   }
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   260
   basic_regex& assign(const charT* p, size_type len, flag_type f)
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   261
   {
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   262
      return assign(p, p + len, f);
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   263
   }
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   264
private:
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   265
   basic_regex& do_assign(const charT* p1,
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   266
                          const charT* p2,
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   267
                          flag_type f);
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   268
public:
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   269
   basic_regex& assign(const charT* p1,
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   270
                          const charT* p2,
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   271
                          flag_type f = regex_constants::normal)
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   272
   {
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   273
      return do_assign(p1, p2, f);
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   274
   }
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   275
#if !defined(BOOST_NO_MEMBER_TEMPLATES)
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   276
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   277
   template <class ST, class SA>
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   278
   unsigned int BOOST_REGEX_CALL set_expression(const std::basic_string<charT, ST, SA>& p, flag_type f = regex_constants::normal)
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   279
   { 
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   280
      return set_expression(p.data(), p.data() + p.size(), f); 
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   281
   }
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   282
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   283
   template <class ST, class SA>
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   284
   explicit basic_regex(const std::basic_string<charT, ST, SA>& p, flag_type f = regex_constants::normal)
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   285
   { 
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   286
      assign(p, f); 
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   287
   }
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   288
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   289
   template <class InputIterator>
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   290
   basic_regex(InputIterator arg_first, InputIterator arg_last, flag_type f = regex_constants::normal)
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   291
   {
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   292
      typedef typename traits::string_type seq_type;
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   293
      seq_type a(arg_first, arg_last);
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   294
      if(a.size())
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   295
         assign(&*a.begin(), &*a.begin() + a.size(), f);
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   296
      else
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   297
         assign(static_cast<const charT*>(0), static_cast<const charT*>(0), f);
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   298
   }
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   299
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   300
   template <class ST, class SA>
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   301
   basic_regex& BOOST_REGEX_CALL operator=(const std::basic_string<charT, ST, SA>& p)
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   302
   {
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   303
      return assign(p.data(), p.data() + p.size(), regex_constants::normal);
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   304
   }
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   305
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   306
   template <class string_traits, class A>
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   307
   basic_regex& BOOST_REGEX_CALL assign(
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   308
       const std::basic_string<charT, string_traits, A>& s,
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   309
       flag_type f = regex_constants::normal)
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   310
   {
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   311
      return assign(s.data(), s.data() + s.size(), f);
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   312
   }
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   313
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   314
   template <class InputIterator>
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   315
   basic_regex& BOOST_REGEX_CALL assign(InputIterator arg_first,
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   316
                          InputIterator arg_last,
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   317
                          flag_type f = regex_constants::normal)
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   318
   {
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   319
      typedef typename traits::string_type seq_type;
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   320
      seq_type a(arg_first, arg_last);
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   321
      if(a.size())
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   322
      {
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   323
         const charT* p1 = &*a.begin();
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   324
         const charT* p2 = &*a.begin() + a.size();
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   325
         return assign(p1, p2, f);
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   326
      }
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   327
      return assign(static_cast<const charT*>(0), static_cast<const charT*>(0), f);
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   328
   }
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   329
#else
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   330
   unsigned int BOOST_REGEX_CALL set_expression(const std::basic_string<charT>& p, flag_type f = regex_constants::normal)
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   331
   { 
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   332
      return set_expression(p.data(), p.data() + p.size(), f); 
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   333
   }
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   334
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   335
   basic_regex(const std::basic_string<charT>& p, flag_type f = regex_constants::normal)
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   336
   { 
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   337
      assign(p, f); 
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   338
   }
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   339
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   340
   basic_regex& BOOST_REGEX_CALL operator=(const std::basic_string<charT>& p)
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   341
   {
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   342
      return assign(p.data(), p.data() + p.size(), regex_constants::normal);
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   343
   }
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   344
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   345
   basic_regex& BOOST_REGEX_CALL assign(
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   346
       const std::basic_string<charT>& s,
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   347
       flag_type f = regex_constants::normal)
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   348
   {
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   349
      return assign(s.data(), s.data() + s.size(), f);
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   350
   }
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   351
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   352
#endif
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   353
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   354
   //
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   355
   // locale:
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   356
   locale_type BOOST_REGEX_CALL imbue(locale_type l);
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   357
   locale_type BOOST_REGEX_CALL getloc()const
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   358
   { 
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   359
      return m_pimpl.get() ? m_pimpl->getloc() : locale_type(); 
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   360
   }
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   361
   //
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   362
   // getflags:
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   363
   // retained for backwards compatibility only, "flags"
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   364
   // is now the preferred name:
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   365
   flag_type BOOST_REGEX_CALL getflags()const
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   366
   { 
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   367
      return flags();
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   368
   }
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   369
   flag_type BOOST_REGEX_CALL flags()const
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   370
   { 
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   371
      return m_pimpl.get() ? m_pimpl->flags() : 0;
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   372
   }
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   373
   //
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   374
   // str:
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   375
   std::basic_string<charT> BOOST_REGEX_CALL str()const
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   376
   {
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   377
      return m_pimpl.get() ? m_pimpl->str() : std::basic_string<charT>();
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   378
   }
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   379
   //
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   380
   // begin, end, subexpression:
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   381
   std::pair<const_iterator, const_iterator> BOOST_REGEX_CALL subexpression(std::size_t n)const
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   382
   {
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   383
      if(!m_pimpl.get())
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   384
         throw std::logic_error("Can't access subexpressions in an invalid regex.");
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   385
      return m_pimpl->subexpression(n);
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   386
   }
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   387
   const_iterator BOOST_REGEX_CALL begin()const
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   388
   { 
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   389
      return (m_pimpl.get() ? m_pimpl->begin() : 0); 
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   390
   }
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   391
   const_iterator BOOST_REGEX_CALL end()const
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   392
   { 
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   393
      return (m_pimpl.get() ? m_pimpl->end() : 0); 
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   394
   }
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   395
   //
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   396
   // swap:
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   397
   void BOOST_REGEX_CALL swap(basic_regex& that)throw()
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   398
   {
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   399
      m_pimpl.swap(that.m_pimpl);
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   400
   }
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   401
   //
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   402
   // size:
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   403
   size_type BOOST_REGEX_CALL size()const
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   404
   { 
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   405
      return (m_pimpl.get() ? m_pimpl->size() : 0); 
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   406
   }
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   407
   //
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   408
   // max_size:
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   409
   size_type BOOST_REGEX_CALL max_size()const
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   410
   { 
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   411
      return UINT_MAX; 
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   412
   }
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   413
   //
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   414
   // empty:
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   415
   bool BOOST_REGEX_CALL empty()const
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   416
   { 
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   417
      return (m_pimpl.get() ? 0 != m_pimpl->status() : true); 
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   418
   }
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   419
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   420
   size_type BOOST_REGEX_CALL mark_count()const 
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   421
   { 
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   422
      return (m_pimpl.get() ? m_pimpl->mark_count() : 0); 
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   423
   }
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   424
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   425
   int status()const
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   426
   {
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   427
      return (m_pimpl.get() ? m_pimpl->status() : regex_constants::error_empty);
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   428
   }
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   429
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   430
   int BOOST_REGEX_CALL compare(const basic_regex& that) const
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   431
   {
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   432
      if(m_pimpl.get() == that.m_pimpl.get())
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   433
         return 0;
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   434
      if(!m_pimpl.get())
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   435
         return -1;
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   436
      if(!that.m_pimpl.get())
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   437
         return 1;
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   438
      if(status() != that.status())
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   439
         return status() - that.status();
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   440
      if(flags() != that.flags())
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   441
         return flags() - that.flags();
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   442
      return str().compare(that.str());
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   443
   }
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   444
   bool BOOST_REGEX_CALL operator==(const basic_regex& e)const
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   445
   { 
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   446
      return compare(e) == 0; 
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   447
   }
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   448
   bool BOOST_REGEX_CALL operator != (const basic_regex& e)const
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   449
   { 
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   450
      return compare(e) != 0; 
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   451
   }
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   452
   bool BOOST_REGEX_CALL operator<(const basic_regex& e)const
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   453
   { 
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   454
      return compare(e) < 0; 
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   455
   }
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   456
   bool BOOST_REGEX_CALL operator>(const basic_regex& e)const
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   457
   { 
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   458
      return compare(e) > 0; 
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   459
   }
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   460
   bool BOOST_REGEX_CALL operator<=(const basic_regex& e)const
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   461
   { 
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   462
      return compare(e) <= 0; 
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   463
   }
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   464
   bool BOOST_REGEX_CALL operator>=(const basic_regex& e)const
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   465
   { 
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   466
      return compare(e) >= 0; 
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   467
   }
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   468
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   469
   //
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   470
   // The following are deprecated as public interfaces
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   471
   // but are available for compatibility with earlier versions.
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   472
   const charT* BOOST_REGEX_CALL expression()const 
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   473
   { 
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   474
      return (m_pimpl.get() && !m_pimpl->status() ? m_pimpl->expression() : 0); 
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   475
   }
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   476
   unsigned int BOOST_REGEX_CALL set_expression(const charT* p1, const charT* p2, flag_type f = regex_constants::normal)
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   477
   {
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   478
      assign(p1, p2, f | regex_constants::no_except);
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   479
      return status();
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   480
   }
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   481
   unsigned int BOOST_REGEX_CALL set_expression(const charT* p, flag_type f = regex_constants::normal) 
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   482
   { 
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   483
      assign(p, f | regex_constants::no_except); 
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   484
      return status();
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   485
   }
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   486
   unsigned int BOOST_REGEX_CALL error_code()const
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   487
   {
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   488
      return status();
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   489
   }
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   490
   //
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   491
   // private access methods:
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   492
   //
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   493
   const re_detail::re_syntax_base* get_first_state()const
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   494
   {
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   495
      BOOST_ASSERT(0 != m_pimpl.get());
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   496
      return m_pimpl->get_first_state();
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   497
   }
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   498
   unsigned get_restart_type()const
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   499
   {
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   500
      BOOST_ASSERT(0 != m_pimpl.get());
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   501
      return m_pimpl->get_restart_type();
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   502
   }
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   503
   const unsigned char* get_map()const
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   504
   {
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   505
      BOOST_ASSERT(0 != m_pimpl.get());
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   506
      return m_pimpl->get_map();
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   507
   }
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   508
   const ::boost::regex_traits_wrapper<traits>& get_traits()const
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   509
   {
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   510
      BOOST_ASSERT(0 != m_pimpl.get());
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   511
      return m_pimpl->get_traits();
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   512
   }
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   513
   bool can_be_null()const
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   514
   {
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   515
      BOOST_ASSERT(0 != m_pimpl.get());
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   516
      return m_pimpl->can_be_null();
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   517
   }
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   518
   const re_detail::regex_data<charT, traits>& get_data()const
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   519
   {
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   520
      BOOST_ASSERT(0 != m_pimpl.get());
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   521
      return m_pimpl->get_data();
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   522
   }
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   523
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   524
private:
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   525
   shared_ptr<re_detail::basic_regex_implementation<charT, traits> > m_pimpl;
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   526
};
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   527
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   528
//
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   529
// out of line members;
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   530
// these are the only members that mutate the basic_regex object,
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   531
// and are designed to provide the strong exception guarentee
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   532
// (in the event of a throw, the state of the object remains unchanged).
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   533
//
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   534
template <class charT, class traits>
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   535
basic_regex<charT, traits>& basic_regex<charT, traits>::do_assign(const charT* p1,
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   536
                        const charT* p2,
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   537
                        flag_type f)
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   538
{
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   539
   shared_ptr<re_detail::basic_regex_implementation<charT, traits> > temp;
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   540
   if(!m_pimpl.get())
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   541
   {
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   542
      temp = shared_ptr<re_detail::basic_regex_implementation<charT, traits> >(new re_detail::basic_regex_implementation<charT, traits>());
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   543
   }
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   544
   else
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   545
   {
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   546
      temp = shared_ptr<re_detail::basic_regex_implementation<charT, traits> >(new re_detail::basic_regex_implementation<charT, traits>(m_pimpl->m_ptraits));
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   547
   }
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   548
   temp->assign(p1, p2, f);
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   549
   temp.swap(m_pimpl);
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   550
   return *this;
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   551
}
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   552
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   553
template <class charT, class traits>
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   554
typename basic_regex<charT, traits>::locale_type BOOST_REGEX_CALL basic_regex<charT, traits>::imbue(locale_type l)
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   555
{ 
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   556
   shared_ptr<re_detail::basic_regex_implementation<charT, traits> > temp(new re_detail::basic_regex_implementation<charT, traits>());
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   557
   locale_type result = temp->imbue(l);
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   558
   temp.swap(m_pimpl);
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   559
   return result;
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   560
}
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   561
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   562
//
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   563
// non-members:
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   564
//
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   565
template <class charT, class traits>
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   566
void swap(basic_regex<charT, traits>& e1, basic_regex<charT, traits>& e2)
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   567
{
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   568
   e1.swap(e2);
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   569
}
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   570
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   571
#ifndef BOOST_NO_STD_LOCALE
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   572
template <class charT, class traits, class traits2>
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   573
std::basic_ostream<charT, traits>& 
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   574
   operator << (std::basic_ostream<charT, traits>& os, 
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   575
                const basic_regex<charT, traits2>& e)
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   576
{
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   577
   return (os << e.str());
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   578
}
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   579
#else
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   580
template <class traits>
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   581
std::ostream& operator << (std::ostream& os, const basic_regex<char, traits>& e)
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   582
{
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   583
   return (os << e.str());
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   584
}
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   585
#endif
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   586
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   587
//
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   588
// class reg_expression:
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   589
// this is provided for backwards compatibility only,
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   590
// it is deprecated, no not use!
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   591
//
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   592
#ifdef BOOST_REGEX_NO_FWD
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   593
template <class charT, class traits = regex_traits<charT> >
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   594
#else
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   595
template <class charT, class traits >
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   596
#endif
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   597
class reg_expression : public basic_regex<charT, traits>
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   598
{
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   599
public:
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   600
   typedef typename basic_regex<charT, traits>::flag_type flag_type;
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   601
   typedef typename basic_regex<charT, traits>::size_type size_type;
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   602
   explicit reg_expression(){}
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   603
   explicit reg_expression(const charT* p, flag_type f = regex_constants::normal)
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   604
      : basic_regex<charT, traits>(p, f){}
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   605
   reg_expression(const charT* p1, const charT* p2, flag_type f = regex_constants::normal)
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   606
      : basic_regex<charT, traits>(p1, p2, f){}
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   607
   reg_expression(const charT* p, size_type len, flag_type f)
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   608
      : basic_regex<charT, traits>(p, len, f){}
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   609
   reg_expression(const reg_expression& that)
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   610
      : basic_regex<charT, traits>(that) {}
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   611
   ~reg_expression(){}
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   612
   reg_expression& BOOST_REGEX_CALL operator=(const reg_expression& that)
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   613
   {
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   614
      return this->assign(that);
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   615
   }
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   616
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   617
#if !defined(BOOST_NO_MEMBER_TEMPLATES)
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   618
   template <class ST, class SA>
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   619
   explicit reg_expression(const std::basic_string<charT, ST, SA>& p, flag_type f = regex_constants::normal)
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   620
   : basic_regex<charT, traits>(p, f)
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   621
   { 
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   622
   }
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   623
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   624
   template <class InputIterator>
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   625
   reg_expression(InputIterator arg_first, InputIterator arg_last, flag_type f = regex_constants::normal)
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   626
   : basic_regex<charT, traits>(arg_first, arg_last, f)
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   627
   {
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   628
   }
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   629
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   630
   template <class ST, class SA>
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   631
   reg_expression& BOOST_REGEX_CALL operator=(const std::basic_string<charT, ST, SA>& p)
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   632
   {
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   633
      this->assign(p);
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   634
      return *this;
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   635
   }
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   636
#else
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   637
   explicit reg_expression(const std::basic_string<charT>& p, flag_type f = regex_constants::normal)
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   638
   : basic_regex<charT, traits>(p, f)
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   639
   { 
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   640
   }
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   641
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   642
   reg_expression& BOOST_REGEX_CALL operator=(const std::basic_string<charT>& p)
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   643
   {
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   644
      this->assign(p);
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   645
      return *this;
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   646
   }
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   647
#endif
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   648
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   649
};
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   650
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   651
#ifdef BOOST_MSVC
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   652
#pragma warning (pop)
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   653
#endif
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   654
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   655
} // namespace boost
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   656
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   657
#ifdef BOOST_MSVC
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   658
#pragma warning(push)
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   659
#pragma warning(disable: 4103)
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   660
#endif
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   661
#ifdef BOOST_HAS_ABI_HEADERS
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   662
#  include BOOST_ABI_SUFFIX
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   663
#endif
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   664
#ifdef BOOST_MSVC
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   665
#pragma warning(pop)
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   666
#endif
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   667
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   668
#endif
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
   669