• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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