| Front Page / Macros / Asserts / BOOST_MPL_ASSERT_MSG | 
#define BOOST_MPL_ASSERT_MSG( condition, message, types ) \ unspecified token sequence \ /**/
Generates a compilation error with an embedded custom message when the condition doesn't hold.
#include <boost/mpl/assert.hpp>
| Parameter | Requirement | Description | 
|---|---|---|
| condition | An integral constant expression | A condition to be asserted. | 
| message | A legal identifier token | A custom message in a form of a legal C++ identifier token. | 
| types | A legal function parameter list | A parenthized list of types to be displayed in the error message. | 
For any integral constant expression expr, legal C++ identifier message, and arbitrary types t1, t2,... tn:
BOOST_MPL_ASSERT_MSG( expr, message, (t1, t2,... tn) );
| Return type: | None. | 
|---|---|
| Precondition: | t1, t2,... tn are non-void. | 
| Semantics: | Generates a compilation error if expr != true, otherwise has no effect. When possible within the compiler's diagnostic capabilities, the error message will include the message identifier and the parenthized list of t1, t2,... tn types, and have a general form of: ... ************( ...::message )************)(t1, t2,... tn) ... | 
BOOST_MPL_ASSERT_MSG( expr, message, (types<t1, t2,... tn>) );
| Return type: | None. | 
|---|---|
| Precondition: | None. | 
| Semantics: | Generates a compilation error if expr != true, otherwise has no effect. When possible within the compiler's diagnostics capabilities, the error message will include the message identifier and the list of t1, t2,... tn types, and have a general form of: ... ************( ...::message )************)(types<t1, t2,... tn>) ... | 
template< typename T > struct my
{
    // ...
    BOOST_MPL_ASSERT_MSG(
          is_integral<T>::value
        , NON_INTEGRAL_TYPES_ARE_NOT_ALLOWED
        , (T)
        );
};
my<void*> test;
// In instantiation of `my<void*>':
//   instantiated from here
// conversion from `
//   mpl_::failed************(my<void*>::
//   NON_INTEGRAL_TYPES_ARE_NOT_ALLOWED::************)(void*)
//   ' to non-scalar type `mpl_::assert<false>' requested