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>)");