]> git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/metaparse/doc/fail.qbk
bump version to 12.2.2-pve1
[ceph.git] / ceph / src / boost / libs / metaparse / doc / fail.qbk
1 [#fail]
2 [section fail]
3
4 [h1 Synopsis]
5
6 template <class Msg>
7 struct fail;
8
9 This is a [link parser parser].
10
11 [table Arguments
12 [[Name] [Type]]
13 [[`Msg`] [[link parsing_error_message parsing error message]]]
14 ]
15
16 [h1 Description]
17
18 Parser rejecting every input.
19
20 [h1 Header]
21
22 #include <boost/metaparse/fail.hpp>
23
24 [h1 Expression semantics]
25
26 For any `msg` parsing error message, `s` compile-time string and `pos` source
27 position
28
29 fail<msg>::apply<s, pos>::type
30
31 returns an error with `msg` as the error message.
32
33 [h1 Example]
34
35 #include <boost/metaparse/fail.hpp>
36 #include <boost/metaparse/string.hpp>
37 #include <boost/metaparse/start.hpp>
38 #include <boost/metaparse/is_error.hpp>
39 #include <boost/metaparse/get_message.hpp>
40 #include <boost/metaparse/define_error.hpp>
41
42 using namespace boost::metaparse;
43
44 BOOST_METAPARSE_DEFINE_ERROR(sample_error, "This is an example parsing error");
45
46 using fail_p = fail<sample_error>;
47
48 static_assert(
49 is_error<fail_p::apply<BOOST_METAPARSE_STRING("foo"), start>>::type::value,
50 "it should reject every input"
51 );
52
53 static_assert(
54 std::is_same<
55 get_message<fail_p::apply<BOOST_METAPARSE_STRING("foo"), start>>::type,
56 sample_error
57 >::type::value,
58 "the error message should be the type specified"
59 );
60
61 [endsect]
62