• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 ///////////////////////////////////////////////////////////////////////////////
2 // sub_match_impl.hpp
3 //
4 //  Copyright 2008 Eric Niebler. Distributed under the Boost
5 //  Software License, Version 1.0. (See accompanying file
6 //  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
7 
8 #ifndef BOOST_XPRESSIVE_DETAIL_CORE_SUB_MATCH_IMPL_HPP_EAN_10_04_2005
9 #define BOOST_XPRESSIVE_DETAIL_CORE_SUB_MATCH_IMPL_HPP_EAN_10_04_2005
10 
11 // MS compatible compilers support #pragma once
12 #if defined(_MSC_VER)
13 # pragma once
14 #endif
15 
16 #include <boost/xpressive/sub_match.hpp>
17 
18 namespace boost { namespace xpressive { namespace detail
19 {
20 
21 // TODO: sub_match_impl is a POD IFF BidiIter is POD. Pool allocation
22 // of them can be made more efficient if they are. Or maybe all they
23 // need is trivial constructor/destructor. (???)
24 
25 ///////////////////////////////////////////////////////////////////////////////
26 // sub_match_impl
27 //
28 template<typename BidiIter>
29 struct sub_match_impl
30   : sub_match<BidiIter>
31 {
32     unsigned int repeat_count_;
33     BidiIter begin_;
34     bool zero_width_;
35 
sub_match_implboost::xpressive::detail::sub_match_impl36     sub_match_impl(BidiIter const &begin)
37       : sub_match<BidiIter>(begin, begin)
38       , repeat_count_(0)
39       , begin_(begin)
40       , zero_width_(false)
41     {
42     }
43 };
44 
45 }}} // namespace boost::xpressive::detail
46 
47 #endif
48