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

Boost.Hana: Assertions

Boost , ,

Boost.Hana  1.0.1
Your standard library for metaprogramming
Макрос выполняет различные виды утверждений.

Macros

#define BOOST_HANA_RUNTIME_ASSERT(condition)   unspecified
 Expands to a runtime assertion. More...
 
#define BOOST_HANA_RUNTIME_ASSERT_MSG(condition, message)   unspecified
 Equivalent to BOOST_HANA_RUNTIME_ASSERT, but allows providing a custom failure message. More...
 
#define BOOST_HANA_CONSTANT_ASSERT(condition)   unspecified
 Compile-time assertion for Constants. More...
 
#define BOOST_HANA_CONSTANT_ASSERT_MSG(condition, message)   unspecified
 Equivalent to BOOST_HANA_CONSTANT_ASSERT, but allows providing a custom failure message. More...
 
#define BOOST_HANA_ASSERT(condition)   unspecified
 Expands to the strongest form of assertion possible for the given condition. More...
 
#define BOOST_HANA_ASSERT_MSG(condition, message)   unspecified
 Equivalent to BOOST_HANA_ASSERT, but allows providing a custom failure message. More...
 
#define BOOST_HANA_CONSTEXPR_ASSERT(condition)   unspecified
 Expands to a static assertion or a runtime assertion, depending on whether constexpr lambdas are supported. More...
 
#define BOOST_HANA_CONSTEXPR_ASSERT_MSG(condition, message)   unspecified
 Equivalent to BOOST_HANA_CONSTEXPR_ASSERT, but allows providing a custom failure message.
 
#define BOOST_HANA_RUNTIME_CHECK_MSG(condition, message)
 Equivalent to BOOST_HANA_RUNTIME_ASSERT_MSG, but not influenced by the BOOST_HANA_CONFIG_DISABLE_ASSERTIONS config macro. For internal use only.
 
#define BOOST_HANA_RUNTIME_CHECK(...)
 Equivalent to BOOST_HANA_RUNTIME_ASSERT, but not influenced by the BOOST_HANA_CONFIG_DISABLE_ASSERTIONS config macro. For internal use only.
 
#define BOOST_HANA_CONSTANT_CHECK_MSG(condition, message)
 Equivalent to BOOST_HANA_CONSTANT_ASSERT_MSG, but not influenced by the BOOST_HANA_CONFIG_DISABLE_ASSERTIONS config macro. For internal use only.
 
#define BOOST_HANA_CONSTANT_CHECK(...)
 Equivalent to BOOST_HANA_CONSTANT_ASSERT, but not influenced by the BOOST_HANA_CONFIG_DISABLE_ASSERTIONS config macro. For internal use only.
 
#define BOOST_HANA_CHECK_MSG(condition, message)
 Equivalent to BOOST_HANA_ASSERT_MSG, but not influenced by the BOOST_HANA_CONFIG_DISABLE_ASSERTIONS config macro. For internal use only.
 
#define BOOST_HANA_CHECK(...)
 Equivalent to BOOST_HANA__ASSERT, but not influenced by the BOOST_HANA_CONFIG_DISABLE_ASSERTIONS config macro. For internal use only.
 
#define BOOST_HANA_CONSTEXPR_CHECK_MSG(condition, message)    BOOST_HANA_RUNTIME_CHECK_MSG(condition, message) \
 Equivalent to BOOST_HANA_CONSTEXPR_ASSERT_MSG, but not influenced by the BOOST_HANA_CONFIG_DISABLE_ASSERTIONS config macro. For internal use only.
 
#define BOOST_HANA_CONSTEXPR_CHECK(...)
 Equivalent to BOOST_HANA_CONSTEXPR_ASSERT, but not influenced by the BOOST_HANA_CONFIG_DISABLE_ASSERTIONS config macro. For internal use only.
 

Macro Definition Documentation

#define BOOST_HANA_RUNTIME_ASSERT (   condition)    неуточнено

#include <boost/hana/assert.hpp>

Расширяется до утверждения Runtime.

Учитывая состояние, известное во время выполнения, этот макрос расширяется до утверждения во время выполнения, аналогичного макросу assert. Предоставляемое условие должно быть явно конвертируемым в bool, и оно не должно быть моделью концепции Constant. Если условие Constant, будет запущено статическое утверждение с просьбой использовать макрос BOOST_HANA_CONSTANT_ASSERT.

Note
This macro may only be used at function scope.
#define BOOST_HANA_RUNTIME_ASSERT_MSG (   condition,
  message 
)    неуточнено

#include <boost/hana/assert.hpp>

Эквивалент BOOST_HANA_RUNTIME_ASSERT, но позволяет предоставлять пользовательское сообщение об отказе.

Warning
Conditions that contain multiple comma-separated elements should be parenthesized.
#define BOOST_HANA_CONSTANT_ASSERT (   condition)    неуточнено

#include <boost/hana/assert.hpp>

Утверждение времени компиляции для Constants.

Учитывая состояние, известное в момент компиляции в виде Constant, этот макрос расширяется до утверждения времени компиляции, аналогичного static_assert. Предоставляемое условие должно быть моделью концепции Constant, в этом случае его значение извлекается с использованием hana::value и затем преобразуется в bool. Если условие не является Constant, запускается статическое утверждение с просьбой использовать макрос BOOST_HANA_RUNTIME_ASSERT.

Этот макрос может использоваться только в глобальном пространстве и области функций; он не может использоваться в области классов. Обратите внимание, что состояние никогда не может быть оценено во время выполнения. Следовательно, любой побочный эффект может не иметь места (но вы не должны полагаться на побочные эффекты в любом случае).

#define BOOST_HANA_CONSTANT_ASSERT_MSG (   condition,
  message 
)    неуточнено

#include <boost/hana/assert.hpp>

Эквивалент BOOST_HANA_CONSTANT_ASSERT, но позволяет предоставлять пользовательское сообщение о сбое.

Warning
Conditions that contain multiple comma-separated elements should be parenthesized.
#define BOOST_HANA_ASSERT (   condition)    неуточнено

#include <boost/hana/assert.hpp>

Расширяется до самой сильной формы утверждения, возможной для данного состояния.

При условии, BOOST_HANA_ASSERT расширяется либо до времени компиляции, либо до утверждения времени выполнения, в зависимости от того, известно ли значение состояния в момент компиляции или во время выполнения. Утверждения времени компиляции всегда предпочтительнее утверждений времени выполнения. Если условие является моделью концепции Constant, его значение (определяемое с hana::value) предполагается явно конвертируемым в bool, и на нем выполняется утверждение времени компиляции. В противном случае само условие предполагается явно конвертируемым в bool, и на нем выполняется утверждение времени выполнения.

Если утверждение может быть выполнено во время компиляции, условие не гарантировано будет оценено во время выполнения вообще (но это может). Следовательно, в целом, вы не должны полагаться на побочные эффекты, которые происходят внутри утверждения.

Note
This macro may only be used at function scope.
#define BOOST_HANA_ASSERT_MSG (   condition,
  message 
)    неуточнено

#include <boost/hana/assert.hpp>

Эквивалент BOOST_HANA_ASSERT, но позволяет предоставлять пользовательское сообщение о сбое.

Warning
Conditions that contain multiple comma-separated elements should be parenthesized.
#define BOOST_HANA_CONSTEXPR_ASSERT (   condition)    неуточнено

#include <boost/hana/assert.hpp>

Расширяется до статического утверждения или утверждения времени выполнения, в зависимости от того, поддерживаются ли лямбды constexpr.

Этот макрос используется для утверждения на условиях, которые были бы постоянным выражением, если бы были поддержаны лямбды constexpr. В настоящее время лямбда constexpr не поддерживаются, и это всегда утверждение во время выполнения. В частности, это эквивалентно BOOST_HANA_RUNTIME_ASSERT.

Статья Boost.Hana: Assertions раздела может быть полезна для разработчиков на c++ и boost.




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



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


реклама


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

Время компиляции файла: 2024-08-30 11:47:00
2025-05-20 00:24:22/0.0039479732513428/0