Sane C++ Libraries
C++ Platform Abstraction Libraries
Type Traits

Type Traits (EnableIf, AddPointer, RemovePointer, etc.) More...

Classes

struct  SC::TypeTraits::RemoveReference< T >
 Removes reference from a type T. More...
 
struct  SC::TypeTraits::IsLValueReference< T >
 Determines if a type is an lvalue reference. More...
 
struct  SC::TypeTraits::IsRValueReference< T >
 Determines if a type is an rvalue reference. More...
 
struct  SC::TypeTraits::TypeList< TT >
 Represents a variadic template type list. More...
 
struct  SC::TypeTraits::TypeListGet< T, N, M >
 Retrieves the type at the specified index in the TypeList. More...
 
struct  SC::TypeTraits::EnableIf< B, T >
 EnableIf conditionally defines a type if a boolean template parameter is true. More...
 
struct  SC::TypeTraits::IsSame< T, U >
 IsSame evaluates to true if the provided types T and U are the same, false otherwise. More...
 
struct  SC::TypeTraits::RemovePointer< T >
 RemovePointer removes the pointer qualification from a type T. More...
 
struct  SC::TypeTraits::AddReference< T >
 AddReference adds a reference qualifier to a type T if it is not already a reference. More...
 
struct  SC::TypeTraits::AddPointer< T >
 AddPointer adds a pointer qualification to a type T if it is not already a pointer. More...
 
struct  SC::TypeTraits::RemoveConst< T >
 RemoveConst removes the const qualification from a type T. More...
 
struct  SC::TypeTraits::ReturnType< R >
 ReturnType extracts the return type from different forms of function types. More...
 
struct  SC::TypeTraits::IsConst< T >
 IsConst evaluates to true if the provided type T is const, false otherwise. More...
 
struct  SC::TypeTraits::IsTriviallyCopyable< T >
 IsTriviallyCopyable evaluates to true if the type T can be trivially copied, false otherwise. More...
 
struct  SC::TypeTraits::IsReference< T >
 IsReference evaluates to true if the type T is a reference, false otherwise. More...
 
struct  SC::TypeTraits::Conditional< B, T, F >
 Conditional defines a type to be T if a boolean value is true, F otherwise. More...
 
struct  SC::TypeTraits::SameConstnessAs< U, T >
 SameConstnessAs modifies type T to have the const-qualification of U. More...
 

Typedefs

template<typename T , int N>
using SC::TypeTraits::TypeListGetT = typename TypeListGet< T, N >::type
 Alias template to simplify accessing the retrieved type using TypeListGet. More...
 
template<bool B, class T , class F >
using SC::TypeTraits::ConditionalT = typename Conditional< B, T, F >::type
 ConditionalT is an alias template that resolves to type T if a boolean value is true, otherwise to type F. More...
 

Functions

template<typename T , size_t N>
constexpr auto SC::TypeTraits::SizeOfArray (const T(&)[N])
 SizeOfArray is a constexpr function that returns the compile-time size N of a plain C array. More...
 

Detailed Description

Type Traits (EnableIf, AddPointer, RemovePointer, etc.)

Typedef Documentation

◆ ConditionalT

template<bool B, class T , class F >
using SC::TypeTraits::ConditionalT = typedef typename Conditional<B,T,F>::type

#include <TypeTraits.h>

ConditionalT is an alias template that resolves to type T if a boolean value is true, otherwise to type F.

◆ TypeListGetT

template<typename T , int N>
using SC::TypeTraits::TypeListGetT = typedef typename TypeListGet<T, N>::type

#include <TypeList.h>

Alias template to simplify accessing the retrieved type using TypeListGet.

Template Parameters
TTypeList for type retrieval.
NIndex of the type to retrieve.

Function Documentation

◆ SizeOfArray()

template<typename T , size_t N>
constexpr auto SC::TypeTraits::SizeOfArray ( const   T(&)[N])
constexpr

#include <TypeTraits.h>

SizeOfArray is a constexpr function that returns the compile-time size N of a plain C array.