]>
Commit | Line | Data |
---|---|---|
7c673cae FG |
1 | [#source_position] |
2 | [section source_position] | |
3 | ||
4 | [h1 Synopsis] | |
5 | ||
6 | template <class Line, class Col, class PrevChar> | |
7 | struct source_position; | |
8 | ||
9 | This is a [link metaprogramming_value template metaprogramming value]. | |
10 | ||
11 | [table Arguments | |
12 | [[Name] [Type]] | |
13 | [[`Line`] [[link boxed_value boxed] integer value]] | |
14 | [[`Col`] [[link boxed_value boxed] integer value]] | |
15 | [[`PrevChar`] [[link boxed_value boxed] character value]] | |
16 | ] | |
17 | ||
18 | [h1 Description] | |
19 | ||
20 | Compile-time data-structure describing a position of the input text. | |
21 | ||
22 | The values of this data-structure store the last character that was parsed | |
23 | before reaching the position of the input described by the `source_position` | |
24 | value. | |
25 | ||
26 | Its tag is [link source_position_tag `source_position_tag`]. | |
27 | ||
28 | The beginning of the input text is represented by [link start `start`]. | |
29 | ||
30 | [h1 Header] | |
31 | ||
32 | #include <boost/metaparse/source_position.hpp> | |
33 | ||
34 | [h1 Expression semantics] | |
35 | ||
36 | For any `l`, `c` compile-time boxed integral values and `p` compile-time boxed | |
37 | character value, the following are equivalent | |
38 | ||
39 | get_col<source_position<l, c, p>>::type | |
40 | c::type | |
41 | ||
42 | get_line<source_position<l, c, p>>::type | |
43 | l::type | |
44 | ||
45 | get_prev_char<source_position<l, c, p>>::type | |
46 | p::type | |
47 | ||
48 | [h1 Constant values of this type] | |
49 | ||
50 | * [link start `start`] | |
51 | ||
52 | [h1 Operations] | |
53 | ||
54 | * `boost::mpl::equal_to` | |
55 | * `boost::mpl::greater` | |
56 | * `boost::mpl::greater_equal` | |
57 | * `boost::mpl::less` | |
58 | * `boost::mpl::less_equal` | |
59 | * `boost::mpl::not_equal_to` | |
60 | * [link get_col `get_col`] | |
61 | * [link get_line `get_line`] | |
62 | * [link get_prev_char `get_prev_char`] | |
63 | * [link next_char `next_char`] | |
64 | * [link next_line `next_line`] | |
65 | ||
66 | [endsect] | |
67 |