|
template<typename B , typename A > |
std::enable_if_t< std::is_base_of_v< A, B >, copy_const_t< A, B > * > | souffle::as (A &x) |
|
template<typename B , typename A > |
auto | souffle::as (A *x) |
| Helpers for dynamic_cast ing without having to specify redundant type qualifiers. More...
|
|
template<typename B , typename A > |
B * | souffle::as (const std::unique_ptr< A > &x) |
|
template<typename A > |
std::unique_ptr< A > | souffle::clone (const A *node) |
|
template<typename A , typename B > |
auto | souffle::clone (const std::pair< A, B > &p) |
|
template<typename A > |
std::unique_ptr< A > | souffle::clone (const std::unique_ptr< A > &node) |
|
long | souffle::duration_in_ns (const time_point &start, const time_point &end) |
|
long | souffle::duration_in_us (const time_point &start, const time_point &end) |
|
template<typename T > |
bool | souffle::equal_ptr (const std::unique_ptr< T > &a, const std::unique_ptr< T > &b) |
| Compares two values referenced by a pointer where the case where both pointers are null is also considered equivalent. More...
|
|
template<typename T > |
bool | souffle::equal_ptr (const T *a, const T *b) |
| Compares two values referenced by a pointer where the case where both pointers are null is also considered equivalent. More...
|
|
template<typename... Args> |
void | souffle::fatal (const char *format, const Args &... args) |
|
template<typename B , typename A > |
std::enable_if_t< std::is_base_of_v< A, B >, bool > | souffle::isA (A &x) |
|
template<typename B , typename A > |
bool | souffle::isA (A *x) |
| Checks if the object of type Source can be casted to type Destination. More...
|
|
template<typename B , typename A > |
bool | souffle::isA (const std::unique_ptr< A > &x) |
|
time_point | souffle::now () |
|