#ifndef META_HS_EXCEPT_KEYWORDS_HPP #define META_HS_EXCEPT_KEYWORDS_HPP // Copyright Abel Sinkovics (abel@sinkovics.hu) 2012. // 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 #include #include struct keywords_are_not_allowed {}; template class except_keywords { private: template struct not_a_keyword { typedef not_a_keyword type; template struct apply : boost::mpl::and_< Acc, boost::mpl::not_::type> > {}; }; struct not_keyword { typedef not_keyword type; template struct apply : boost::mpl::fold > {}; }; public: typedef except_keywords type; template struct apply : boost::mpl::apply_wrap2< boost::metaparse::accept_when, S, Pos > {}; }; #endif