[#next_char] [section next_char] [h1 Synopsis] template struct next_char; This is a [link lazy_metafunction lazy template metafunction]. [table Arguments [[Name] [Type]] [[`SourcePosition`] [[link source_position source position]]] [[`Ch`] [[link boxed_value boxed] character value. The character `SourcePosition` points to in the input.]] ] [h1 Description] Returns a new source position, pointing to the next character of the same line. [h1 Header] #include [h1 Expression semantics] For any `s` source position and `c` wrapped character the following are equivalent get_col> boost::mpl::plus::type, boost::mpl::int_<1>> get_line> get_line get_prev_char>::type c [h1 Example] #include #include #include #include #include #include using namespace boost::metaparse; struct returns_source_position { using type = source_position< std::integral_constant, std::integral_constant, std::integral_constant >; }; struct returns_char { using type = std::integral_constant; }; static_assert( get_col< next_char< source_position< std::integral_constant, std::integral_constant, std::integral_constant >, std::integral_constant > >::type::value == 14, "it should increase the column component of the source position" ); static_assert( get_line< next_char< source_position< std::integral_constant, std::integral_constant, std::integral_constant >, std::integral_constant > >::type::value == 11, "it should not increase the line component of the source position" ); static_assert( get_prev_char< next_char< source_position< std::integral_constant, std::integral_constant, std::integral_constant >, std::integral_constant > >::type::value == 'x', "it should update the prev char component of the source position" ); static_assert( get_col>::type::value == 14, "it should support lazy evaluation" ); [endsect]