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

Namespace for implementation details for TMP. More...

Classes

struct  __exists
 
struct  __exists< T, void_t< T > >
 
struct  __is_instance
 
struct  __is_instance< U, U< T... > >
 
struct  __is_swappable
 
struct  __is_swappable_with
 
struct  __is_swappable_with< T, U, void_t< enable_if_t< exists< decltype(std::swap(std::declval< T & >(), std::declval< U & >()))>() &&exists< decltype(std::swap(std::declval< U & >(), std::declval< T & >()))>() > > >
 
struct  __ostream_op_defined
 
struct  __ostream_op_defined< T, void_t< decltype(operator<<(std::declval< std::ostream & >(), std::declval< const T & >())) > >
 
struct  __to_string_defined
 
struct  __to_string_defined< T, void_t< decltype(std::to_string(std::declval< const T & >())) > >
 
struct  __toStringDefined
 
struct  __toStringDefined< T, void_t< scl::utils::ToString< T > > >
 
struct  NoOp
 Type construct that exposes a single type that is its type argument. More...
 

Functions

template<class Func , class... Args>
constexpr auto __can_call_impl (Func f, bool) -> decltype(f(std::declval< Args >()...), std::true_type
 
template<class Func , class... >
constexpr std::false_type __can_call_impl (Func,...)
 
template<class T , class U >
constexpr bool is_swappable_with ()
 

Detailed Description

Namespace for implementation details for TMP.

Function Documentation

◆ __can_call_impl() [1/2]

template<class Func , class... Args>
constexpr auto scl::tools::meta::details::__can_call_impl ( Func  f,
bool   
) -> decltype(f(std::declval<Args>()...), std::true_type
inline

Definition at line 11 of file can_call.h.

◆ __can_call_impl() [2/2]

template<class Func , class... >
constexpr std::false_type scl::tools::meta::details::__can_call_impl ( Func  ,
  ... 
)
inline

Definition at line 17 of file can_call.h.

◆ is_swappable_with()

template<class T , class U >
constexpr bool scl::tools::meta::details::is_swappable_with ( )

Definition at line 28 of file swap.h.