C++ Utilities
4.9.2
Common C++ classes and routines used by my applications such as argument parser, IO and conversion utilities
|
Contains traits for conveniently exploiting SFINAE. More...
Classes | |
struct | All |
struct | All< Head, Tail... > |
struct | Any |
struct | Any< Head, Tail... > |
struct | Bool |
struct | IsCString |
struct | IsSpecializationOf |
struct | IsSpecializationOf< Template< Args... >, Template > |
struct | IsString |
Typedefs | |
template<typename If , typename Then , typename Else > | |
using | Conditional = typename std::conditional< If::value, Then, Else >::type |
template<typename T > | |
using | Not = Bool<!T::value > |
template<typename... Condition> | |
using | EnableIf = typename std::enable_if< All< Condition... >::value, Detail::Enabler >::type |
template<typename... Condition> | |
using | DisableIf = typename std::enable_if<!All< Condition... >::value, Detail::Enabler >::type |
template<typename... Condition> | |
using | EnableIfAny = typename std::enable_if< Any< Condition... >::value, Detail::Enabler >::type |
template<typename... Condition> | |
using | DisableIfAny = typename std::enable_if<!Any< Condition... >::value, Detail::Enabler >::type |
template<typename T > | |
using | IsIteratable = decltype(Detail::isIteratableImpl< T >(0)) |
Contains traits for conveniently exploiting SFINAE.
using Traits::Conditional = typedef typename std::conditional<If::value, Then, Else>::type |
using Traits::DisableIf = typedef typename std::enable_if<!All<Condition...>::value, Detail::Enabler>::type |
using Traits::DisableIfAny = typedef typename std::enable_if<!Any<Condition...>::value, Detail::Enabler>::type |
using Traits::EnableIf = typedef typename std::enable_if<All<Condition...>::value, Detail::Enabler>::type |
using Traits::EnableIfAny = typedef typename std::enable_if<Any<Condition...>::value, Detail::Enabler>::type |
using Traits::IsIteratable = typedef decltype(Detail::isIteratableImpl<T>(0)) |
using Traits::Not = typedef Bool<!T::value> |