C++ Utilities  4.10.0
Common C++ classes and routines used by my applications such as argument parser, IO and conversion utilities
Classes | Namespaces | Typedefs
traits.h File Reference
#include <iterator>
#include <type_traits>
Include dependency graph for traits.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  Traits::Bool< B,... >
 
struct  Traits::Any< T >
 
struct  Traits::Any< Head, Tail... >
 
struct  Traits::All< T >
 
struct  Traits::All< Head, Tail... >
 
struct  Traits::IsSpecializationOf< T, Template >
 
struct  Traits::IsSpecializationOf< Template< Args... >, Template >
 
struct  Traits::IsCString< T >
 
struct  Traits::IsString< T >
 

Namespaces

 Traits
 Contains traits for conveniently exploiting SFINAE.
 

Typedefs

template<typename If , typename Then , typename Else >
using Traits::Conditional = typename std::conditional< If::value, Then, Else >::type
 
template<typename T >
using Traits::Not = Bool<!T::value >
 
template<typename... Condition>
using Traits::EnableIf = typename std::enable_if< All< Condition... >::value, Detail::Enabler >::type
 
template<typename... Condition>
using Traits::DisableIf = typename std::enable_if<!All< Condition... >::value, Detail::Enabler >::type
 
template<typename... Condition>
using Traits::EnableIfAny = typename std::enable_if< Any< Condition... >::value, Detail::Enabler >::type
 
template<typename... Condition>
using Traits::DisableIfAny = typename std::enable_if<!Any< Condition... >::value, Detail::Enabler >::type
 
template<typename T >
using Traits::IsIteratable = decltype(Detail::isIteratableImpl< T >(0))