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