...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
Front Page / Macros / Asserts / BOOST_MPL_ASSERT |
#define BOOST_MPL_ASSERT( pred ) \ unspecified token sequence \ /**/
Generates a compilation error when the predicate pred holds false.
#include <boost/mpl/assert.hpp>
Parameter | Requirement | Description |
---|---|---|
pred | Boolean nullary Metafunction | A predicate to be asserted. |
For any boolean nullary Metafunction pred:
BOOST_MPL_ASSERT(( pred ));
Return type: | None. |
---|---|
Semantics: | Generates a compilation error if pred::type::value != true, otherwise has no effect. Note that double parentheses are required even if no commas appear in the condition. When possible within the compiler's diagnostic capabilities, the error message will include the predicate's full type name, and have a general form of: ... ************ pred::************ ... |
template< typename T, typename U > struct my { // ... BOOST_MPL_ASSERT(( is_same< T,U > )); }; my<void*,char*> test; // In instantiation of `my<void, char*>': // instantiated from here // conversion from ` // mpl_::failed************boost::is_same<void, char*>::************' to // non-scalar type `mpl_::assert<false>' requested