#ifndef BOOST_METAPARSE_V1_ACCEPT_WHEN_HPP #define BOOST_METAPARSE_V1_ACCEPT_WHEN_HPP // Copyright Abel Sinkovics (abel@sinkovics.hu) 2009 - 2010. // Distributed under 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) #include #include #include #include #include namespace boost { namespace metaparse { namespace v1 { template struct accept_when { private: struct unchecked { template struct apply : boost::mpl::eval_if< typename Pred::template apply< typename get_result >::type >::type, typename P::template apply, reject > {}; }; public: typedef accept_when type; template struct apply : boost::mpl::if_< is_error >, P, unchecked >::type::template apply< S, Pos > {}; }; } } } #endif