[#one_char_except] [section one_char_except] [h1 Synopsis] template struct one_char_except; This is a [link parser parser]. [table Arguments [[Name] [Type]] [[`C1`..`Cn`] [[link boxed_value boxed] character values]] ] [h1 Description] `one_char_except` accepts one character except any of `C1` ... `Cn`. When the input is empty or begins with one of the non-accepted characters, `one_char_except` rejects the input. Otherwise it accepts the input and the result of parsing is the character value. The maximum number of template arguments this class can have is the value the macro `BOOST_METAPARSE_LIMIT_ONE_CHAR_EXCEPT_SIZE` expands to. Its default value is 10. [h1 Header] #include [h1 Expression semantics] For any `c1`, ..., `cn` boxed characters the following are equivalent one_char_except one_char_except_c [h1 Example] #include #include #include #include #include #include #include #include #include #include #include using namespace boost::metaparse; using string_literal_parser = middle_of< lit_c<'"'>, repeated>>, lit_c<'"'> >; static_assert( boost::mpl::equal< boost::mpl::vector< boost::mpl::char_<'h'>, boost::mpl::char_<'e'>, boost::mpl::char_<'l'>, boost::mpl::char_<'l'>, boost::mpl::char_<'o'> >, get_result< string_literal_parser::apply >::type >::type::value, "it should return the content of the string literal" ); [endsect]