File assert.hpp
FileList > assert > assert.hpp
Go to the source code of this file
#include <iostream>#include <optional>#include <experimental/source_location>#include <sstream>#include <string>#include "printing/to_string.hpp"
Namespaces
| Type | Name |
|---|---|
| namespace | std |
Public Functions
| Type | Name |
|---|---|
| void | _Assert (bool condition, const std::string & condition_str, const std::optional< std::string > & message, const std::source_location & loc=std::source_location::current()) |
| void | _AssertBinOp (const A & a, const B & b, const std::string & a_str, const std::string & b_str, bool result, const std::string & op, const std::string & nop, const std::source_location & loc=std::source_location::current()) |
| void | unreachable () |
Macros
| Type | Name |
|---|---|
| define | Assert (condition, ...) [**if**](classCoordinate2D.md) (!([**condition**](classCoordinate2D.md))) \_Assert([**condition**](classCoordinate2D.md), #[**condition**](classCoordinate2D.md), std::optional<std::string>([**\_\_VA\_ARGS\_\_**](classCoordinate2D.md))); |
| define | AssertBinOp (a, b, op, nop) [**if**](classCoordinate2D.md) (!(([**a**](classCoordinate2D.md))[**op**](classCoordinate2D.md)([**b**](classCoordinate2D.md)))) \_AssertBinOp([**a**](classCoordinate2D.md), [**b**](classCoordinate2D.md), #[**a**](classCoordinate2D.md), #[**b**](classCoordinate2D.md), [**a**](classCoordinate2D.md) [**op**](classCoordinate2D.md) [**b**](classCoordinate2D.md), #[**op**](classCoordinate2D.md), #[**nop**](classCoordinate2D.md)) |
| define | AssertEQ (expr, val) AssertBinOp([**expr**](classCoordinate2D.md), [**val**](classCoordinate2D.md), ==, !=) |
| define | AssertGE (expr, val) AssertBinOp([**expr**](classCoordinate2D.md), [**val**](classCoordinate2D.md), >=, <) |
| define | AssertGT (expr, val) AssertBinOp([**expr**](classCoordinate2D.md), [**val**](classCoordinate2D.md), >, <=) |
| define | AssertLE (expr, val) AssertBinOp([**expr**](classCoordinate2D.md), [**val**](classCoordinate2D.md), <=, >) |
| define | AssertNE (expr, val) AssertBinOp([**expr**](classCoordinate2D.md), [**val**](classCoordinate2D.md), !=, ==) |
| define | Fail (...) /* multi line expression */ |
| define | HAS_BUILTIN (x) [**\_\_has\_builtin**](classCoordinate2D.md)(x) |
| define | Unimplemented (...) Assert([**false**](classCoordinate2D.md), "Unimplemented"); |
Public Functions Documentation
function _Assert
inline void _Assert (
bool condition,
const std::string & condition_str,
const std::optional< std::string > & message,
const std::source_location & loc=std::source_location::current()
)
function _AssertBinOp
template<typename A, typename B>
inline void _AssertBinOp (
const A & a,
const B & b,
const std::string & a_str,
const std::string & b_str,
bool result,
const std::string & op,
const std::string & nop,
const std::source_location & loc=std::source_location::current()
)
function unreachable
Macro Definition Documentation
define Assert
#define Assert (
condition,
...
) `if (!( condition )) _Assert( condition , # condition , std::optional<std::string>( __VA_ARGS__ ));`
define AssertBinOp
#define AssertBinOp (
a,
b,
op,
nop
) `if (!(( a ) op ( b ))) _AssertBinOp( a , b , # a , # b , a op b , # op , # nop )`
define AssertEQ
define AssertGE
define AssertGT
define AssertLE
define AssertNE
define Fail
define HAS_BUILTIN
define Unimplemented
The documentation for this class was generated from the following file /home/runner/work/Blaze/Blaze/src/lib/assert/assert.hpp