assert.hpp File Reference
#include <nil/crypto3/detail/type_traits.hpp>
Include dependency graph for assert.hpp:
This graph shows which files directly or indirectly include this file:
Go to the source code of this file.
Macros | |
#define | CRYPTO3_DETAIL_ASSERT_ARITHMETIC(T) |
#define | CRYPTO3_DETAIL_ASSERT_COMPLEX(T) |
#define | CRYPTO3_DETAIL_ASSERT_FLOATING_POINT(T) |
#define | CRYPTO3_DETAIL_ASSERT_INTEGRAL(T) static_assert(std::is_integral<T>::value, "argument must be a real integral type"); |
#define | CRYPTO3_DETAIL_ASSERT_REAL(T) static_assert(std::is_arithmetic<T>::value, "argument must be a real arithmetic type"); |
#define | CRYPTO3_DETAIL_ASSERT_VALID_COMPLEX(T) |
Macro Definition Documentation
◆ CRYPTO3_DETAIL_ASSERT_ARITHMETIC
#define CRYPTO3_DETAIL_ASSERT_ARITHMETIC | ( | T | ) |
Value:
static_assert(std::is_arithmetic<typename algebra::detail::remove_complex<T>::type>::value, \
"argument must be a (real or complex) arithmetic type");
#define CRYPTO3_DETAIL_ASSERT_VALID_COMPLEX(T)
Definition: assert.hpp:37
◆ CRYPTO3_DETAIL_ASSERT_COMPLEX
#define CRYPTO3_DETAIL_ASSERT_COMPLEX | ( | T | ) |
Value:
static_assert(algebra::detail::is_complex<T>::value, "argument must be a complex type");
◆ CRYPTO3_DETAIL_ASSERT_FLOATING_POINT
#define CRYPTO3_DETAIL_ASSERT_FLOATING_POINT | ( | T | ) |
Value:
static_assert(std::is_floating_point<typename algebra::detail::remove_complex<T>::type>::value, \
"argument must be a (real or complex) floating point type");
◆ CRYPTO3_DETAIL_ASSERT_INTEGRAL
#define CRYPTO3_DETAIL_ASSERT_INTEGRAL | ( | T | ) | static_assert(std::is_integral<T>::value, "argument must be a real integral type"); |
◆ CRYPTO3_DETAIL_ASSERT_REAL
#define CRYPTO3_DETAIL_ASSERT_REAL | ( | T | ) | static_assert(std::is_arithmetic<T>::value, "argument must be a real arithmetic type"); |
◆ CRYPTO3_DETAIL_ASSERT_VALID_COMPLEX
#define CRYPTO3_DETAIL_ASSERT_VALID_COMPLEX | ( | T | ) |
Value:
static_assert(!algebra::detail::is_complex<T>::value || \
std::is_floating_point<typename algebra::detail::remove_complex<T>::type>::value, \
"invalid complex type argument (valid types are " \
"complex<float>, complex<double>, and complex<long double>)");