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 9This 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 20Compile-time data-structure describing a position of the input text. 21 22The values of this data-structure store the last character that was parsed 23before reaching the position of the input described by the `source_position` 24value. 25 26Its tag is [link source_position_tag `source_position_tag`]. 27 28The 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 36For any `l`, `c` compile-time boxed integral values and `p` compile-time boxed 37character 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 68