1[#lit_c] 2[section lit_c] 3 4[h1 Synopsis] 5 6 template <char C> 7 struct lit; 8 9This is a [link parser parser]. 10 11[table Arguments 12 [[Name] [Type]] 13 [[`C`] [`char` value]] 14] 15 16[h1 Description] 17 18Parser accepting only the `C` character. The result of parsing is the accepted 19character. 20 21[h1 Header] 22 23 #include <boost/metaparse/lit_c.hpp> 24 25[h1 Expression semantics] 26 27For any `c` character the following are equivalent: 28 29 lit_c<c> 30 31 lit<boost::mpl::char_<c>> 32 33[h1 Example] 34 35 #include <boost/metaparse/lit_c.hpp> 36 #include <boost/metaparse/start.hpp> 37 #include <boost/metaparse/string.hpp> 38 #include <boost/metaparse/is_error.hpp> 39 #include <boost/metaparse/get_result.hpp> 40 41 using namespace boost::metaparse; 42 43 static_assert( 44 is_error<lit_c<'x'>::apply<BOOST_METAPARSE_STRING("a"), start>>::type::value, 45 "a different character should be an error" 46 ); 47 48 static_assert( 49 is_error<lit_c<'x'>::apply<BOOST_METAPARSE_STRING(""), start>>::type::value, 50 "empty input should be an error" 51 ); 52 53 static_assert( 54 get_result< 55 lit_c<'x'>::apply<BOOST_METAPARSE_STRING("x"), start> 56 >::type::value == 'x', 57 "result of parsing should be the accepted character" 58 ); 59 60[endsect] 61 62