]> git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/mpl/doc/src/refmanual/ASSERT.rst
add subtree-ish sources for 12.0.3
[ceph.git] / ceph / src / boost / libs / mpl / doc / src / refmanual / ASSERT.rst
1 .. Macros/Asserts//BOOST_MPL_ASSERT
2
3 BOOST_MPL_ASSERT
4 ================
5
6 Synopsis
7 --------
8
9 .. parsed-literal::
10
11 #define BOOST_MPL_ASSERT( pred ) \\
12 |unspecified-token-seq| \\
13 /\*\*/
14
15
16 Description
17 -----------
18
19 Generates a compilation error when the predicate ``pred`` holds false.
20
21
22 Header
23 ------
24
25 .. parsed-literal::
26
27 #include <boost/mpl/assert.hpp>
28
29
30 Parameters
31 ----------
32
33 +---------------+-----------------------------------+-------------------------------+
34 | Parameter | Requirement | Description |
35 +===============+===================================+===============================+
36 | ``pred`` | Boolean nullary |Metafunction| | A predicate to be asserted. |
37 +---------------+-----------------------------------+-------------------------------+
38
39
40 Expression semantics
41 --------------------
42
43 For any boolean nullary |Metafunction| ``pred``:
44
45
46 .. parsed-literal::
47
48 BOOST_MPL_ASSERT(( pred ));
49
50 :Return type:
51 None.
52
53 :Semantics:
54 Generates a compilation error if ``pred::type::value != true``, otherwise
55 has no effect. Note that double parentheses are required even if no commas
56 appear in the condition.
57
58 When possible within the compiler's diagnostic capabilities,
59 the error message will include the predicate's full type name, and have a
60 general form of:
61
62 .. parsed-literal::
63
64 |...| \*\*\*\*\*\*\*\*\*\*\*\* pred::\*\*\*\*\*\*\*\*\*\*\*\* |...|
65
66
67 Example
68 -------
69
70 ::
71
72 template< typename T, typename U > struct my
73 {
74 // ...
75 BOOST_MPL_ASSERT(( is_same< T,U > ));
76 };
77
78 my<void*,char*> test;
79
80 // In instantiation of `my<void, char*>':
81 // instantiated from here
82 // conversion from `
83 // mpl_::failed************boost::is_same<void, char*>::************' to
84 // non-scalar type `mpl_::assert<false>' requested
85
86
87 See also
88 --------
89
90 |Asserts|, |BOOST_MPL_ASSERT_NOT|, |BOOST_MPL_ASSERT_MSG|, |BOOST_MPL_ASSERT_RELATION|
91
92
93 .. copyright:: Copyright © 2001-2009 Aleksey Gurtovoy and David Abrahams
94 Distributed under the Boost Software License, Version 1.0. (See accompanying
95 file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)