EVOLUTION-MANAGER
Edit File: match.ipp
/*============================================================================= Copyright (c) 1998-2003 Joel de Guzman http://spirit.sourceforge.net/ Use, modification and distribution is subject to the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) =============================================================================*/ #if !defined(BOOST_SPIRIT_MATCH_IPP) #define BOOST_SPIRIT_MATCH_IPP #include <algorithm> namespace boost { namespace spirit { BOOST_SPIRIT_CLASSIC_NAMESPACE_BEGIN template <typename T> inline match<T>::match() : len(-1), val() {} template <typename T> inline match<T>::match(std::size_t length_) : len(length_), val() {} template <typename T> inline match<T>::match(std::size_t length_, ctor_param_t val_) : len(length_), val(val_) {} template <typename T> inline bool match<T>::operator!() const { return len < 0; } template <typename T> inline std::ptrdiff_t match<T>::length() const { return len; } template <typename T> inline bool match<T>::has_valid_attribute() const { return val.is_initialized(); } template <typename T> inline typename match<T>::return_t match<T>::value() const { BOOST_SPIRIT_ASSERT(val.is_initialized()); return *val; } template <typename T> inline void match<T>::swap(match& other) { std::swap(len, other.len); std::swap(val, other.val); } inline match<nil_t>::match() : len(-1) {} inline match<nil_t>::match(std::size_t length_) : len(length_) {} inline match<nil_t>::match(std::size_t length_, nil_t) : len(length_) {} inline bool match<nil_t>::operator!() const { return len < 0; } inline bool match<nil_t>::has_valid_attribute() const { return false; } inline std::ptrdiff_t match<nil_t>::length() const { return len; } inline nil_t match<nil_t>::value() const { return nil_t(); } inline void match<nil_t>::value(nil_t) {} inline void match<nil_t>::swap(match<nil_t>& other) { std::swap(len, other.len); } BOOST_SPIRIT_CLASSIC_NAMESPACE_END }} // namespace boost::spirit #endif