Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения

The MPL Reference Manual: BOOST_MPL_ASSERT_MSG

Boost , ,

Boost C++ Libraries

...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_MSG

BOOST_MPL_ASSERT_MSG

Synopsis

#define BOOST_MPL_ASSERT_MSG( condition, message, types ) \
    unspecified token sequence \
/**/

Description

Создает ошибку компиляции с встроенным пользовательским сообщением, когда условие не удерживается.

Parameters

Parameter Requirement Description
условие Интегральное постоянное выражение A condition to be claimed.
месей Токен юридического идентификатора Пользовательское сообщение в виде юридического символа C++.
типы Список параметров правовой функции Список типов, подлежащих отображению в сообщении об ошибке.

Expression semantics

Для любого интегрального постоянного выражения expr, юридического идентификатора C++ message, и произвольных типов 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.

По возможности в рамках диагностических возможностей компилятора сообщение об ошибке будет включать в себя message идентификатор t1, t2,... tn, и имеет общую форму:

... ************( ...::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.

По возможности, в рамках диагностических возможностей компилятора сообщение об ошибке будет включать в себя идентификатор message и список t1, t2,... tn типов, и имеет общую форму:

... ************( ...::message )************)(types<t1, t2,... tn>) ...

Example

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

Статья The MPL Reference Manual: BOOST_MPL_ASSERT_MSG раздела может быть полезна для разработчиков на c++ и boost.




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-30 11:47:00
2025-05-19 22:28:56/0.0082948207855225/1