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