Support Class Library
A set of tools providing classes and utility
Namespaces | Classes | Typedefs | Functions
scl::tools::meta Namespace Reference

A namespace englobing all the TMP tools. More...

Namespaces

 details
 Namespace for implementation details for TMP.
 

Classes

struct  fn
 
struct  fn< F, decltype(&F::operator())>
 
struct  fn< R(*)(Args...), void >
 
struct  fn< R(Class::*const)(Args...), std::nullptr_t >
 
struct  fn< R(Class::*const)(Args...), void >
 
struct  function_traits
 Traits for callable types. More...
 
struct  function_traits< std::function< R(Args...)> >
 Specialization for std::function. More...
 
struct  real_const
 Get the appropriate const version of a type. More...
 
struct  real_const< T *, void >
 Specialization for pointers. More...
 

Typedefs

template<bool B, class T , class F >
using conditional_t = typename std::conditional< B, T, F >::type
 An handy type alias for the result of std::conditional. More...
 
template<bool B, class T = void>
using enable_if_t = typename std::enable_if< B, T >::type
 An handy type alias for the result of std::enable_if. More...
 
template<class T >
using return_t = typename function_traits< T >::return_type
 
template<class T , size_t i>
using arg_t = typename function_traits< T >::template arg_t< i >
 
template<class F >
using fn_t = fn< F, void >
 
template<class F >
using std_fn_type = typename fn_t< F >::fn_type
 
template<class Ret , class... Args>
using fn_type = Ret(*)(Args...)
 An handy type alias to describe function pointer types. More...
 
template<class Ret , class Class , class... Args>
using memfn_type = Ret(Class::*)(Args...)
 An handy type alias to describe member function pointer types. More...
 
template<class Ret , class Class , class... Args>
using const_memfn_type = Ret(Class::*)(Args...) const
 
template<class Ret , class Class >
using mem_ptr_type = Ret Class::*
 
template<class Ret , class... Args>
using fn_sig_type = Ret(Args...)
 
template<class T >
using real_const_t = typename real_const< T >::type
 
template<class T >
using remove_cv_t = typename std::remove_cv< T >::type
 
template<class T >
using remove_const_t = typename std::remove_const< T >::type
 
template<class T >
using remove_volatile_t = typename std::remove_volatile< T >::type
 
template<class T >
using add_cv_t = typename std::add_cv< T >::type
 
template<class T >
using add_const_t = typename std::add_const< T >::type
 
template<class T >
using add_volatile_t = typename std::add_volatile< T >::type
 
template<class T >
using remove_reference_t = typename std::remove_reference< T >::type
 
template<class T >
using add_lvalue_reference_t = typename std::add_lvalue_reference< T >::type
 
template<class T >
using add_rvalue_reference_t = typename std::add_rvalue_reference< T >::type
 
template<class T >
using remove_pointer_t = typename std::remove_pointer< T >::type
 
template<class T >
using add_pointer_t = typename std::add_pointer< T >::type
 
template<class T >
using make_signed_t = typename std::make_signed< T >::type
 
template<class T >
using make_unsigned_t = typename std::make_unsigned< T >::type
 
template<class T >
using remove_extent_t = typename std::remove_extent< T >::type
 
template<class T >
using remove_all_extents_t = typename std::remove_all_extents< T >::type
 
template<class T >
using decay_t = typename std::decay< T >::type
 
template<class T >
using remove_cv_ref_t = remove_cv_t< remove_reference_t< T > >
 
template<class T >
using no_op_t = typename details::NoOp< T >::type
 
template<std::size_t Len, std::size_t Align = sizeof(char)>
using aligned_storage_t = typename std::aligned_storage< Len, Align >::type
 
template<std::size_t Len, class... Types>
using aligned_union_t = typename std::aligned_union< Len, Types... >::type
 
template<class... T>
using common_type_t = typename std::common_type< T... >::type
 
template<class T >
using underlying_type_t = typename std::underlying_type< T >::type
 
template<size_t I, class Tuple >
using tuple_element_t = typename std::tuple_element< I, Tuple >::type
 
template<class Signature >
using result_of_t = typename std::result_of< Signature >::type
 
template<class... >
using void_t = void
 The must have. More...
 

Functions

template<class Func , class... Args>
constexpr bool can_call (Func f)
 Determines whether or not the given function can be called with the given argument types. More...
 
template<bool b>
constexpr bool constexpr_assert ()
 
template<class T >
constexpr bool defines_ostream_operator ()
 Determines whether or not the operator<< is defined for the given type and ostream. More...
 
template<class T >
constexpr bool defines_scl_to_string ()
 Determines whether or not ToString has been specialized for the given type. More...
 
template<class T >
constexpr bool defines_std_to_string ()
 Determines whether or not std::to_string(const T&) is defined. More...
 
template<class T >
constexpr bool exists ()
 Determines whether or not the given type is well-formed. More...
 
template<class From , class Ret , class... Args>
constexpr fn_type< Ret, Args... > fn_cast (From f)
 Cast a function from its type to determined type. More...
 
template<class From , class Class , class Ret , class... Args>
constexpr memfn_type< Class, Ret, Args... > fn_cast (From f)
 Cast a member function from its type to determined type. More...
 
template<class R , class... Args>
std_fn_type< R(*)(Args...)> as_fn (R(*f)(Args...))
 
template<class Class , class R , class... Args>
std_fn_type< R(Class::*const)(Args...)> as_fn (R(Class::*const f)(Args...) const)
 
template<class F >
fn< F, void >::fn_type as_fn (F f)
 
template<class Base , class Derived >
constexpr bool is_base_of ()
 An handy function for the result of std::is_base_of. More...
 
template<class From , class To >
constexpr bool is_convertible ()
 An handy function for the result of std::is_convertible. More...
 
template<template< class, class... > class U, class... T>
constexpr bool is_instance ()
 Determines whether a template type is an "instance" of a templated type. More...
 
template<class Lhs , class Rhs >
constexpr bool is_same ()
 An handy function for the result of std::is_same. More...
 
template<class T >
constexpr bool is_swappable ()
 
template<class T >
constexpr bool is_void ()
 
template<class T >
constexpr bool is_null_pointer ()
 
template<class T >
constexpr bool is_integral ()
 
template<class T >
constexpr bool is_floating_point ()
 
template<class T >
constexpr bool is_array ()
 
template<class T >
constexpr bool is_enum ()
 
template<class T >
constexpr bool is_union ()
 
template<class T >
constexpr bool is_class ()
 
template<class T >
constexpr bool is_function ()
 
template<class T >
constexpr bool is_pointer ()
 
template<class T >
constexpr bool is_lvalue_reference ()
 
template<class T >
constexpr bool is_rvalue_reference ()
 
template<class T >
constexpr bool is_member_object_pointer ()
 
template<class T >
constexpr bool is_member_function_pointer ()
 
template<class T >
constexpr bool is_fundamental ()
 
template<class T >
constexpr bool is_arithmetic ()
 
template<class T >
constexpr bool is_scalar ()
 
template<class T >
constexpr bool is_object ()
 
template<class T >
constexpr bool is_compound ()
 
template<class T >
constexpr bool is_reference ()
 
template<class T >
constexpr bool is_member_pointer ()
 
template<class T >
constexpr bool is_const ()
 
template<class T >
constexpr bool is_volatile ()
 
template<class T >
constexpr bool is_trivial ()
 
template<class T >
constexpr bool is_trivially_copyable ()
 
template<class T >
constexpr bool is_standard_layout ()
 
template<class T >
constexpr bool is_empty ()
 
template<class T >
constexpr bool is_polymorphic ()
 
template<class T >
constexpr bool is_abstract ()
 
template<class T >
constexpr bool is_signed ()
 
template<class T >
constexpr bool is_unsigned ()
 
template<class T , class... Args>
constexpr bool is_constructible ()
 
template<class T , class... Args>
constexpr bool is_trivially_constructible ()
 
template<class T , class... Args>
constexpr bool is_nothrow_constructible ()
 
template<class T >
constexpr bool is_default_constructible ()
 
template<class T >
constexpr bool is_trivially_default_constructible ()
 
template<class T >
constexpr bool is_nothrow_default_constructible ()
 
template<class T >
constexpr bool is_copy_constructible ()
 
template<class T >
constexpr bool is_trivially_copy_constructible ()
 
template<class T >
constexpr bool is_nothrow_copy_constructible ()
 
template<class T >
constexpr bool is_move_constructible ()
 
template<class T >
constexpr bool is_trivially_move_constructible ()
 
template<class T >
constexpr bool is_nothrow_move_constructible ()
 
template<class T >
constexpr bool is_copy_assignable ()
 
template<class T >
constexpr bool is_trivially_copy_assignable ()
 
template<class T >
constexpr bool is_nothrow_copy_assignable ()
 
template<class T >
constexpr bool is_move_assignable ()
 
template<class T >
constexpr bool is_trivially_move_assignable ()
 
template<class T >
constexpr bool is_nothrow_move_assignable ()
 
template<class T >
constexpr bool is_destructible ()
 
template<class T >
constexpr bool is_trivially_destructible ()
 
template<class T >
constexpr bool is_nothrow_destructible ()
 
template<class T >
constexpr bool has_virtual_destructor ()
 
template<class T >
constexpr bool is_copyable ()
 Determines whether or not a type defines copy semantics. More...
 
template<class T >
constexpr bool is_movable ()
 Determines whether or not a type defines move semantics. More...
 
template<class T >
constexpr bool is_trivially_movable ()
 Determines whether or not a type defines trivial move semantics. More...
 
template<class F , class... Args>
constexpr bool is_invocable ()
 
template<class T >
constexpr std::size_t alignment_of ()
 
template<class T >
constexpr std::size_t rank ()
 
template<class T , unsigned N = 0>
constexpr std::size_t extent ()
 

Detailed Description

A namespace englobing all the TMP tools.

Typedef Documentation

◆ add_const_t

template<class T >
using scl::tools::meta::add_const_t = typedef typename std:: add_const <T>::type

Definition at line 17 of file type_mod.h.

◆ add_cv_t

template<class T >
using scl::tools::meta::add_cv_t = typedef typename std:: add_cv <T>::type

Definition at line 16 of file type_mod.h.

◆ add_lvalue_reference_t

template<class T >
using scl::tools::meta::add_lvalue_reference_t = typedef typename std:: add_lvalue_reference <T>::type

Definition at line 21 of file type_mod.h.

◆ add_pointer_t

template<class T >
using scl::tools::meta::add_pointer_t = typedef typename std:: add_pointer <T>::type

Definition at line 25 of file type_mod.h.

◆ add_rvalue_reference_t

template<class T >
using scl::tools::meta::add_rvalue_reference_t = typedef typename std:: add_rvalue_reference <T>::type

Definition at line 22 of file type_mod.h.

◆ add_volatile_t

template<class T >
using scl::tools::meta::add_volatile_t = typedef typename std:: add_volatile <T>::type

Definition at line 18 of file type_mod.h.

◆ aligned_storage_t

template<std::size_t Len, std::size_t Align = sizeof(char)>
using scl::tools::meta::aligned_storage_t = typedef typename std::aligned_storage<Len, Align>::type

Definition at line 27 of file type_query.h.

◆ aligned_union_t

template<std::size_t Len, class... Types>
using scl::tools::meta::aligned_union_t = typedef typename std::aligned_union<Len, Types...>::type

Definition at line 30 of file type_query.h.

◆ arg_t

template<class T , size_t i>
using scl::tools::meta::arg_t = typedef typename function_traits<T>::template arg_t<i>

Definition at line 49 of file fn_introspect.h.

◆ common_type_t

template<class... T>
using scl::tools::meta::common_type_t = typedef typename std:: common_type <T...>::type

Definition at line 32 of file type_query.h.

◆ conditional_t

template<bool B, class T , class F >
using scl::tools::meta::conditional_t = typedef typename std::conditional<B, T, F>::type

An handy type alias for the result of std::conditional.

Definition at line 12 of file conditional.h.

◆ const_memfn_type

template<class Ret , class Class , class... Args>
using scl::tools::meta::const_memfn_type = typedef Ret(Class::*)(Args...) const

Definition at line 27 of file fn_type.h.

◆ decay_t

template<class T >
using scl::tools::meta::decay_t = typedef typename std:: decay <T>::type

Definition at line 33 of file type_mod.h.

◆ enable_if_t

template<bool B, class T = void>
using scl::tools::meta::enable_if_t = typedef typename std::enable_if<B, T>::type

An handy type alias for the result of std::enable_if.

Definition at line 12 of file enable_if.h.

◆ fn_sig_type

template<class Ret , class... Args>
using scl::tools::meta::fn_sig_type = typedef Ret(Args...)

Definition at line 36 of file fn_type.h.

◆ fn_t

template<class F >
using scl::tools::meta::fn_t = typedef fn<F, void>

Definition at line 83 of file fn_introspect.h.

◆ fn_type

template<class Ret , class... Args>
using scl::tools::meta::fn_type = typedef Ret(*)(Args...)

An handy type alias to describe function pointer types.

Template Parameters
Retbeing the return type of the function pointer
Argsbeing the argument's types

Definition at line 15 of file fn_type.h.

◆ make_signed_t

template<class T >
using scl::tools::meta::make_signed_t = typedef typename std:: make_signed <T>::type

Definition at line 27 of file type_mod.h.

◆ make_unsigned_t

template<class T >
using scl::tools::meta::make_unsigned_t = typedef typename std:: make_unsigned <T>::type

Definition at line 28 of file type_mod.h.

◆ mem_ptr_type

template<class Ret , class Class >
using scl::tools::meta::mem_ptr_type = typedef Ret Class::*

Definition at line 30 of file fn_type.h.

◆ memfn_type

template<class Ret , class Class , class... Args>
using scl::tools::meta::memfn_type = typedef Ret(Class::*)(Args...)

An handy type alias to describe member function pointer types.

Template Parameters
Classbeing the class this memfn is from
Retbeing the return type of the member function pointer
Argsbeing the argument's types

Definition at line 24 of file fn_type.h.

◆ no_op_t

template<class T >
using scl::tools::meta::no_op_t = typedef typename details::NoOp<T>::type

Definition at line 48 of file type_mod.h.

◆ real_const_t

template<class T >
using scl::tools::meta::real_const_t = typedef typename real_const<T>::type

Definition at line 42 of file real_const.h.

◆ remove_all_extents_t

template<class T >
using scl::tools::meta::remove_all_extents_t = typedef typename std:: remove_all_extents <T>::type

Definition at line 31 of file type_mod.h.

◆ remove_const_t

template<class T >
using scl::tools::meta::remove_const_t = typedef typename std:: remove_const <T>::type

Definition at line 13 of file type_mod.h.

◆ remove_cv_ref_t

template<class T >
using scl::tools::meta::remove_cv_ref_t = typedef remove_cv_t<remove_reference_t<T> >

Definition at line 36 of file type_mod.h.

◆ remove_cv_t

template<class T >
using scl::tools::meta::remove_cv_t = typedef typename std:: remove_cv <T>::type

Definition at line 12 of file type_mod.h.

◆ remove_extent_t

template<class T >
using scl::tools::meta::remove_extent_t = typedef typename std:: remove_extent <T>::type

Definition at line 30 of file type_mod.h.

◆ remove_pointer_t

template<class T >
using scl::tools::meta::remove_pointer_t = typedef typename std:: remove_pointer <T>::type

Definition at line 24 of file type_mod.h.

◆ remove_reference_t

template<class T >
using scl::tools::meta::remove_reference_t = typedef typename std:: remove_reference <T>::type

Definition at line 20 of file type_mod.h.

◆ remove_volatile_t

template<class T >
using scl::tools::meta::remove_volatile_t = typedef typename std:: remove_volatile <T>::type

Definition at line 14 of file type_mod.h.

◆ result_of_t

template<class Signature >
using scl::tools::meta::result_of_t = typedef typename std::result_of<Signature>::type

Definition at line 45 of file type_query.h.

◆ return_t

template<class T >
using scl::tools::meta::return_t = typedef typename function_traits<T>::return_type

Definition at line 46 of file fn_introspect.h.

◆ std_fn_type

template<class F >
using scl::tools::meta::std_fn_type = typedef std::function<Ret(Args...)>

Definition at line 86 of file fn_introspect.h.

◆ tuple_element_t

template<size_t I, class Tuple >
using scl::tools::meta::tuple_element_t = typedef typename std::tuple_element<I, Tuple>::type

Definition at line 38 of file type_query.h.

◆ underlying_type_t

template<class T >
using scl::tools::meta::underlying_type_t = typedef typename std::underlying_type<T>::type

Definition at line 35 of file type_query.h.

◆ void_t

template<class... >
using scl::tools::meta::void_t = typedef void

The must have.

Definition at line 10 of file void_t.h.

Function Documentation

◆ alignment_of()

template<class T >
constexpr std::size_t scl::tools::meta::alignment_of ( )
inline

Definition at line 18 of file type_query.h.

◆ as_fn() [1/3]

template<class R , class... Args>
std_fn_type<R(*)(Args...)> scl::tools::meta::as_fn ( R(*)(Args...)  f)

Definition at line 89 of file fn_introspect.h.

◆ as_fn() [2/3]

template<class Class , class R , class... Args>
std_fn_type<R(Class::* const)(Args...)> scl::tools::meta::as_fn ( R(Class::*)(Args...) const  f)

Definition at line 94 of file fn_introspect.h.

◆ as_fn() [3/3]

template<class F >
fn<F, void>::fn_type scl::tools::meta::as_fn ( f)

Definition at line 100 of file fn_introspect.h.

◆ can_call()

template<class Func , class... Args>
constexpr bool scl::tools::meta::can_call ( Func  f)
inline

Determines whether or not the given function can be called with the given argument types.

Template Parameters
Funcbeing the type of the function (auto deduction)
Argsbeing the arguments' types
Parameters
fbeing the desired function
Returns
TRUE if it can be called using these arguments, FALSE otherwise

Definition at line 30 of file can_call.h.

◆ constexpr_assert()

template<bool b>
constexpr bool scl::tools::meta::constexpr_assert ( )
inline

Definition at line 9 of file constexpr_assert.h.

◆ defines_ostream_operator()

template<class T >
constexpr bool scl::tools::meta::defines_ostream_operator ( )
inline

Determines whether or not the operator<< is defined for the given type and ostream.

Template Parameters
Tbeing the type to test upon
Returns
TRUE if defined, FALSE otherwise

Definition at line 30 of file defines_ostream_operator.h.

◆ defines_scl_to_string()

template<class T >
constexpr bool scl::tools::meta::defines_scl_to_string ( )
inline

Determines whether or not ToString has been specialized for the given type.

Template Parameters
Tbeing the type to test upon
Returns
TRUE if ToString<T> is defined, FALSE otherwise

Definition at line 26 of file defines_scl_to_string.h.

◆ defines_std_to_string()

template<class T >
constexpr bool scl::tools::meta::defines_std_to_string ( )
inline

Determines whether or not std::to_string(const T&) is defined.

Template Parameters
Tbeing the type to test upon
Returns
TRUE if defined, FALSE otherwise

Definition at line 29 of file defines_std_to_string.h.

◆ exists()

template<class T >
constexpr bool scl::tools::meta::exists ( )
inline

Determines whether or not the given type is well-formed.

Template Parameters
Tbeing the type to check
Returns
TRUE if well formed, FALSE otherwise

Definition at line 23 of file exists.h.

◆ extent()

template<class T , unsigned N = 0>
constexpr std::size_t scl::tools::meta::extent ( )
inline

Definition at line 22 of file type_query.h.

◆ fn_cast() [1/2]

template<class From , class Ret , class... Args>
constexpr fn_type<Ret, Args...> scl::tools::meta::fn_cast ( From  f)
inline

Cast a function from its type to determined type.

Template Parameters
Frombeing the actual type of the function
Retbeing the new return type
Argsbeing the new arguments' types
Parameters
fbeing the function to cast
Returns
the function pointer statically casted

Definition at line 19 of file fn_cast.h.

◆ fn_cast() [2/2]

template<class From , class Class , class Ret , class... Args>
constexpr memfn_type<Class, Ret, Args...> scl::tools::meta::fn_cast ( From  f)
inline

Cast a member function from its type to determined type.

Template Parameters
Frombeing the actual type of the function
Classbeing the new class it is from
Retbeing the new return type
Argsbeing the new arguments' types
Parameters
fbeing the function to cast
Returns
the member function pointer statically casted

Definition at line 33 of file fn_cast.h.

◆ has_virtual_destructor()

template<class T >
constexpr bool scl::tools::meta::has_virtual_destructor ( )
inline

Definition at line 116 of file type_check.h.

◆ is_abstract()

template<class T >
constexpr bool scl::tools::meta::is_abstract ( )
inline

Definition at line 72 of file type_check.h.

◆ is_arithmetic()

template<class T >
constexpr bool scl::tools::meta::is_arithmetic ( )
inline

Definition at line 58 of file type_check.h.

◆ is_array()

template<class T >
constexpr bool scl::tools::meta::is_array ( )
inline

Definition at line 46 of file type_check.h.

◆ is_base_of()

template<class Base , class Derived >
constexpr bool scl::tools::meta::is_base_of ( )
inline

An handy function for the result of std::is_base_of.

Definition at line 12 of file is_base_of.h.

◆ is_class()

template<class T >
constexpr bool scl::tools::meta::is_class ( )
inline

Definition at line 49 of file type_check.h.

◆ is_compound()

template<class T >
constexpr bool scl::tools::meta::is_compound ( )
inline

Definition at line 61 of file type_check.h.

◆ is_const()

template<class T >
constexpr bool scl::tools::meta::is_const ( )
inline

Definition at line 65 of file type_check.h.

◆ is_constructible()

template<class T , class... Args>
constexpr bool scl::tools::meta::is_constructible ( )
inline

Definition at line 89 of file type_check.h.

◆ is_convertible()

template<class From , class To >
constexpr bool scl::tools::meta::is_convertible ( )
inline

An handy function for the result of std::is_convertible.

Definition at line 17 of file is_convertible.h.

◆ is_copy_assignable()

template<class T >
constexpr bool scl::tools::meta::is_copy_assignable ( )
inline

Definition at line 105 of file type_check.h.

◆ is_copy_constructible()

template<class T >
constexpr bool scl::tools::meta::is_copy_constructible ( )
inline

Definition at line 97 of file type_check.h.

◆ is_copyable()

template<class T >
constexpr bool scl::tools::meta::is_copyable ( )
inline

Determines whether or not a type defines copy semantics.

Template Parameters
Tbeing the type to check against
Returns
TRUE if it defines copy semantics, FALSE otherwise

Definition at line 124 of file type_check.h.

◆ is_default_constructible()

template<class T >
constexpr bool scl::tools::meta::is_default_constructible ( )
inline

Definition at line 93 of file type_check.h.

◆ is_destructible()

template<class T >
constexpr bool scl::tools::meta::is_destructible ( )
inline

Definition at line 113 of file type_check.h.

◆ is_empty()

template<class T >
constexpr bool scl::tools::meta::is_empty ( )
inline

Definition at line 70 of file type_check.h.

◆ is_enum()

template<class T >
constexpr bool scl::tools::meta::is_enum ( )
inline

Definition at line 47 of file type_check.h.

◆ is_floating_point()

template<class T >
constexpr bool scl::tools::meta::is_floating_point ( )
inline

Definition at line 45 of file type_check.h.

◆ is_function()

template<class T >
constexpr bool scl::tools::meta::is_function ( )
inline

Definition at line 50 of file type_check.h.

◆ is_fundamental()

template<class T >
constexpr bool scl::tools::meta::is_fundamental ( )
inline

Definition at line 57 of file type_check.h.

◆ is_instance()

template<template< class, class... > class U, class... T>
constexpr bool scl::tools::meta::is_instance ( )
inline

Determines whether a template type is an "instance" of a templated type.

Template Parameters
Ubeing the templated type
Tbeing the types composing the templated type (if the type to check is "instance")
Returns
TRUE if it is "instance", FALSE otherwise

Definition at line 23 of file is_instance.h.

◆ is_integral()

template<class T >
constexpr bool scl::tools::meta::is_integral ( )
inline

Definition at line 44 of file type_check.h.

◆ is_invocable()

template<class F , class... Args>
constexpr bool scl::tools::meta::is_invocable ( )
inline

Definition at line 160 of file type_check.h.

◆ is_lvalue_reference()

template<class T >
constexpr bool scl::tools::meta::is_lvalue_reference ( )
inline

Definition at line 52 of file type_check.h.

◆ is_member_function_pointer()

template<class T >
constexpr bool scl::tools::meta::is_member_function_pointer ( )
inline

Definition at line 55 of file type_check.h.

◆ is_member_object_pointer()

template<class T >
constexpr bool scl::tools::meta::is_member_object_pointer ( )
inline

Definition at line 54 of file type_check.h.

◆ is_member_pointer()

template<class T >
constexpr bool scl::tools::meta::is_member_pointer ( )
inline

Definition at line 63 of file type_check.h.

◆ is_movable()

template<class T >
constexpr bool scl::tools::meta::is_movable ( )
inline

Determines whether or not a type defines move semantics.

Template Parameters
Tbeing the type to check against
Returns
TRUE if it defines move semantics, FALSE otherwise

Definition at line 134 of file type_check.h.

◆ is_move_assignable()

template<class T >
constexpr bool scl::tools::meta::is_move_assignable ( )
inline

Definition at line 109 of file type_check.h.

◆ is_move_constructible()

template<class T >
constexpr bool scl::tools::meta::is_move_constructible ( )
inline

Definition at line 101 of file type_check.h.

◆ is_nothrow_constructible()

template<class T , class... Args>
constexpr bool scl::tools::meta::is_nothrow_constructible ( )
inline

Definition at line 91 of file type_check.h.

◆ is_nothrow_copy_assignable()

template<class T >
constexpr bool scl::tools::meta::is_nothrow_copy_assignable ( )
inline

Definition at line 107 of file type_check.h.

◆ is_nothrow_copy_constructible()

template<class T >
constexpr bool scl::tools::meta::is_nothrow_copy_constructible ( )
inline

Definition at line 99 of file type_check.h.

◆ is_nothrow_default_constructible()

template<class T >
constexpr bool scl::tools::meta::is_nothrow_default_constructible ( )
inline

Definition at line 95 of file type_check.h.

◆ is_nothrow_destructible()

template<class T >
constexpr bool scl::tools::meta::is_nothrow_destructible ( )
inline

Definition at line 115 of file type_check.h.

◆ is_nothrow_move_assignable()

template<class T >
constexpr bool scl::tools::meta::is_nothrow_move_assignable ( )
inline

Definition at line 111 of file type_check.h.

◆ is_nothrow_move_constructible()

template<class T >
constexpr bool scl::tools::meta::is_nothrow_move_constructible ( )
inline

Definition at line 103 of file type_check.h.

◆ is_null_pointer()

template<class T >
constexpr bool scl::tools::meta::is_null_pointer ( )
inline

Definition at line 43 of file type_check.h.

◆ is_object()

template<class T >
constexpr bool scl::tools::meta::is_object ( )
inline

Definition at line 60 of file type_check.h.

◆ is_pointer()

template<class T >
constexpr bool scl::tools::meta::is_pointer ( )
inline

Definition at line 51 of file type_check.h.

◆ is_polymorphic()

template<class T >
constexpr bool scl::tools::meta::is_polymorphic ( )
inline

Definition at line 71 of file type_check.h.

◆ is_reference()

template<class T >
constexpr bool scl::tools::meta::is_reference ( )
inline

Definition at line 62 of file type_check.h.

◆ is_rvalue_reference()

template<class T >
constexpr bool scl::tools::meta::is_rvalue_reference ( )
inline

Definition at line 53 of file type_check.h.

◆ is_same()

template<class Lhs , class Rhs >
constexpr bool scl::tools::meta::is_same ( )
inline

An handy function for the result of std::is_same.

Definition at line 12 of file is_same.h.

◆ is_scalar()

template<class T >
constexpr bool scl::tools::meta::is_scalar ( )
inline

Definition at line 59 of file type_check.h.

◆ is_signed()

template<class T >
constexpr bool scl::tools::meta::is_signed ( )
inline

Definition at line 73 of file type_check.h.

◆ is_standard_layout()

template<class T >
constexpr bool scl::tools::meta::is_standard_layout ( )
inline

Definition at line 69 of file type_check.h.

◆ is_swappable()

template<class T >
constexpr bool scl::tools::meta::is_swappable ( )

Definition at line 43 of file swap.h.

◆ is_trivial()

template<class T >
constexpr bool scl::tools::meta::is_trivial ( )
inline

Definition at line 67 of file type_check.h.

◆ is_trivially_constructible()

template<class T , class... Args>
constexpr bool scl::tools::meta::is_trivially_constructible ( )
inline

Definition at line 90 of file type_check.h.

◆ is_trivially_copy_assignable()

template<class T >
constexpr bool scl::tools::meta::is_trivially_copy_assignable ( )
inline

Definition at line 106 of file type_check.h.

◆ is_trivially_copy_constructible()

template<class T >
constexpr bool scl::tools::meta::is_trivially_copy_constructible ( )
inline

Definition at line 98 of file type_check.h.

◆ is_trivially_copyable()

template<class T >
constexpr bool scl::tools::meta::is_trivially_copyable ( )
inline

Definition at line 68 of file type_check.h.

◆ is_trivially_default_constructible()

template<class T >
constexpr bool scl::tools::meta::is_trivially_default_constructible ( )
inline

Definition at line 94 of file type_check.h.

◆ is_trivially_destructible()

template<class T >
constexpr bool scl::tools::meta::is_trivially_destructible ( )
inline

Definition at line 114 of file type_check.h.

◆ is_trivially_movable()

template<class T >
constexpr bool scl::tools::meta::is_trivially_movable ( )
inline

Determines whether or not a type defines trivial move semantics.

Template Parameters
Tbeing the type to check against
Returns
TRUE if it does, FALSE otherwise

Definition at line 144 of file type_check.h.

◆ is_trivially_move_assignable()

template<class T >
constexpr bool scl::tools::meta::is_trivially_move_assignable ( )
inline

Definition at line 110 of file type_check.h.

◆ is_trivially_move_constructible()

template<class T >
constexpr bool scl::tools::meta::is_trivially_move_constructible ( )
inline

Definition at line 102 of file type_check.h.

◆ is_union()

template<class T >
constexpr bool scl::tools::meta::is_union ( )
inline

Definition at line 48 of file type_check.h.

◆ is_unsigned()

template<class T >
constexpr bool scl::tools::meta::is_unsigned ( )
inline

Definition at line 74 of file type_check.h.

◆ is_void()

template<class T >
constexpr bool scl::tools::meta::is_void ( )
inline

Definition at line 42 of file type_check.h.

◆ is_volatile()

template<class T >
constexpr bool scl::tools::meta::is_volatile ( )
inline

Definition at line 66 of file type_check.h.

◆ rank()

template<class T >
constexpr std::size_t scl::tools::meta::rank ( )
inline

Definition at line 19 of file type_query.h.