1 #ifndef BOOST_METAPARSE_V1_CHANGE_ERROR_MESSAGE_HPP 2 #define BOOST_METAPARSE_V1_CHANGE_ERROR_MESSAGE_HPP 3 4 // Copyright Abel Sinkovics (abel@sinkovics.hu) 2011. 5 // Distributed under the Boost Software License, Version 1.0. 6 // (See accompanying file LICENSE_1_0.txt or copy at 7 // http://www.boost.org/LICENSE_1_0.txt) 8 9 #include <boost/metaparse/v1/is_error.hpp> 10 #include <boost/metaparse/v1/reject.hpp> 11 12 #include <boost/mpl/eval_if.hpp> 13 14 namespace boost 15 { 16 namespace metaparse 17 { 18 namespace v1 19 { 20 template <class P, class Msg> 21 struct change_error_message 22 { 23 template <class S, class Pos> 24 struct apply : 25 boost::mpl::eval_if< 26 typename is_error<typename P::template apply<S, Pos> >::type, 27 reject<Msg, Pos>, 28 typename P::template apply<S, Pos> 29 > 30 {}; 31 32 typedef change_error_message type; 33 }; 34 } 35 } 36 } 37 38 #endif 39 40