Support Class Library
A set of tools providing classes and utility
Namespaces | Macros | Functions
type_check.h File Reference
#include <type_traits>
#include <scl/tools/meta/can_call.h>
#include <scl/tools/meta/exists.h>
#include <scl/tools/meta/swap.h>

Go to the source code of this file.

Namespaces

 scl
 Global namespace of the SCL.
 
 scl::tools
 General purpose tooling.
 
 scl::tools::meta
 A namespace englobing all the TMP tools.
 

Macros

#define SCL_TYPECHECK(fn)
 
#define SCL_TYPECHECK_COMPOUND(fn)
 
#define SCL_TYPECHECK_WITH_VARGS(fn)
 
#define SCL_TYPECHECK_FN(fn)
 
#define SCL_TYPECHECK_FN_R(fn)
 

Functions

template<class T >
constexpr bool scl::tools::meta::is_void ()
 
template<class T >
constexpr bool scl::tools::meta::is_null_pointer ()
 
template<class T >
constexpr bool scl::tools::meta::is_integral ()
 
template<class T >
constexpr bool scl::tools::meta::is_floating_point ()
 
template<class T >
constexpr bool scl::tools::meta::is_array ()
 
template<class T >
constexpr bool scl::tools::meta::is_enum ()
 
template<class T >
constexpr bool scl::tools::meta::is_union ()
 
template<class T >
constexpr bool scl::tools::meta::is_class ()
 
template<class T >
constexpr bool scl::tools::meta::is_function ()
 
template<class T >
constexpr bool scl::tools::meta::is_pointer ()
 
template<class T >
constexpr bool scl::tools::meta::is_lvalue_reference ()
 
template<class T >
constexpr bool scl::tools::meta::is_rvalue_reference ()
 
template<class T >
constexpr bool scl::tools::meta::is_member_object_pointer ()
 
template<class T >
constexpr bool scl::tools::meta::is_member_function_pointer ()
 
template<class T >
constexpr bool scl::tools::meta::is_fundamental ()
 
template<class T >
constexpr bool scl::tools::meta::is_arithmetic ()
 
template<class T >
constexpr bool scl::tools::meta::is_scalar ()
 
template<class T >
constexpr bool scl::tools::meta::is_object ()
 
template<class T >
constexpr bool scl::tools::meta::is_compound ()
 
template<class T >
constexpr bool scl::tools::meta::is_reference ()
 
template<class T >
constexpr bool scl::tools::meta::is_member_pointer ()
 
template<class T >
constexpr bool scl::tools::meta::is_const ()
 
template<class T >
constexpr bool scl::tools::meta::is_volatile ()
 
template<class T >
constexpr bool scl::tools::meta::is_trivial ()
 
template<class T >
constexpr bool scl::tools::meta::is_trivially_copyable ()
 
template<class T >
constexpr bool scl::tools::meta::is_standard_layout ()
 
template<class T >
constexpr bool scl::tools::meta::is_empty ()
 
template<class T >
constexpr bool scl::tools::meta::is_polymorphic ()
 
template<class T >
constexpr bool scl::tools::meta::is_abstract ()
 
template<class T >
constexpr bool scl::tools::meta::is_signed ()
 
template<class T >
constexpr bool scl::tools::meta::is_unsigned ()
 
template<class T , class... Args>
constexpr bool scl::tools::meta::is_constructible ()
 
template<class T , class... Args>
constexpr bool scl::tools::meta::is_trivially_constructible ()
 
template<class T , class... Args>
constexpr bool scl::tools::meta::is_nothrow_constructible ()
 
template<class T >
constexpr bool scl::tools::meta::is_default_constructible ()
 
template<class T >
constexpr bool scl::tools::meta::is_trivially_default_constructible ()
 
template<class T >
constexpr bool scl::tools::meta::is_nothrow_default_constructible ()
 
template<class T >
constexpr bool scl::tools::meta::is_copy_constructible ()
 
template<class T >
constexpr bool scl::tools::meta::is_trivially_copy_constructible ()
 
template<class T >
constexpr bool scl::tools::meta::is_nothrow_copy_constructible ()
 
template<class T >
constexpr bool scl::tools::meta::is_move_constructible ()
 
template<class T >
constexpr bool scl::tools::meta::is_trivially_move_constructible ()
 
template<class T >
constexpr bool scl::tools::meta::is_nothrow_move_constructible ()
 
template<class T >
constexpr bool scl::tools::meta::is_copy_assignable ()
 
template<class T >
constexpr bool scl::tools::meta::is_trivially_copy_assignable ()
 
template<class T >
constexpr bool scl::tools::meta::is_nothrow_copy_assignable ()
 
template<class T >
constexpr bool scl::tools::meta::is_move_assignable ()
 
template<class T >
constexpr bool scl::tools::meta::is_trivially_move_assignable ()
 
template<class T >
constexpr bool scl::tools::meta::is_nothrow_move_assignable ()
 
template<class T >
constexpr bool scl::tools::meta::is_destructible ()
 
template<class T >
constexpr bool scl::tools::meta::is_trivially_destructible ()
 
template<class T >
constexpr bool scl::tools::meta::is_nothrow_destructible ()
 
template<class T >
constexpr bool scl::tools::meta::has_virtual_destructor ()
 
template<class T >
constexpr bool scl::tools::meta::is_copyable ()
 Determines whether or not a type defines copy semantics. More...
 
template<class T >
constexpr bool scl::tools::meta::is_movable ()
 Determines whether or not a type defines move semantics. More...
 
template<class T >
constexpr bool scl::tools::meta::is_trivially_movable ()
 Determines whether or not a type defines trivial move semantics. More...
 
template<class F , class... Args>
constexpr bool scl::tools::meta::is_invocable ()
 

Macro Definition Documentation

◆ SCL_TYPECHECK

#define SCL_TYPECHECK (   fn)
Value:
template <class T>\
inline constexpr bool fn(){\
return std::fn<T>::value;\
}

Definition at line 9 of file type_check.h.

◆ SCL_TYPECHECK_COMPOUND

#define SCL_TYPECHECK_COMPOUND (   fn)
Value:
template <class T, class U>\
inline constexpr bool fn(){\
return std::fn<T, U>::value;\
}

Definition at line 15 of file type_check.h.

◆ SCL_TYPECHECK_FN

#define SCL_TYPECHECK_FN (   fn)
Value:
template <class F, class... Args>\
inline constexpr bool fn(){\
return std::fn<F, Args...>::value;\
}

Definition at line 27 of file type_check.h.

◆ SCL_TYPECHECK_FN_R

#define SCL_TYPECHECK_FN_R (   fn)
Value:
template <class R, class F, class... Args>\
inline constexpr bool fn(){\
return std::fn<R, F, Args...>::value;\
}

Definition at line 33 of file type_check.h.

◆ SCL_TYPECHECK_WITH_VARGS

#define SCL_TYPECHECK_WITH_VARGS (   fn)
Value:
template <class T, class... Args>\
inline constexpr bool fn(){\
return std::fn<T, Args...>::value;\
}

Definition at line 21 of file type_check.h.