1[#accept] 2[section accept] 3 4[h1 Synopsis] 5 6 template <class Result, class Remaining, class Pos> 7 struct accept; 8 9This is a [link metaprogramming_value template metaprogramming value]. 10 11[table Arguments 12 [[Name] [Type]] 13 [[`Result`] [[link metaprogramming_value template metaprogramming value]]] 14 [[`Remaining`] [[link string string]]] 15 [[`Pos`] [[link source_position source position]]] 16] 17 18[h1 Description] 19 20Values representing a successful parser application. It behaves as a 21[link lazy_metafunction lazy template metafunction]: when it is evaluated as a 22metafunction, it returns itself with its arguments evaluated. See expression 23semantics for further details. 24 25[note 26Note that for backward compatibility when `Result::type` is not defined, 27`accept<....>::type` does not evaluate `Result`. For example 28`accept<int, BOOST_METAPARSE_STRING("foo"), start>::type` is 29`accept<int, BOOST_METAPARSE_STRING("foo")::type, start::type>`. Using types 30that are not template metaprogramming values as `Result` is deprecated and 31will not work in future versions of the library. 32] 33 34[h1 Expressions semantics] 35 36For any `r` template metaprogramming value, `s` compile-time string and `p` 37source position the following are equivalent: 38 39 accept<r, s, p>::type 40 41 accept<r, s::type, p::type> 42 43[h1 Header] 44 45 #include <boost/metaparse/accept.hpp> 46 47[h1 Operations] 48 49* [link get_position `get_position`] 50* [link get_remaining `get_remaining`] 51* [link get_result `get_result`] 52 53[endsect] 54 55