ALib C++ Library
Library Version: 2402 R1
Documentation generated by doxygen
Loading...
Searching...
No Matches
tmp.hpp File Reference

Description:


This header file is part of the ALib C++ Library . It does not belong to an ALib Module and is included in any ALib Distribution .

© 2013-2024 A-Worx GmbH, Germany. Published under Boost Software License.

Note
To reduce complexity, this header is not shown in inclusion graphs of this documentation.

Definition in file tmp.hpp.

#include <type_traits>
Include dependency graph for tmp.hpp:

Go to the source code of this file.

Classes

struct  TInitializeDefaults
 
struct  TOmitInitialization
 

Namespaces

namespace  alib
 
namespace  alib::lang
 

Macros

C++ Template Meta Programming

Simple shortcut macros usable with template meta programming. Unlike other ALib macros, their prefix is "ATMP_". This is for reducing their size as they are frequently used in more complex type expressions.

#define ATMP_EQ( T, TEqual)   std::is_same <T, TEqual>::value
 
#define ATMP_IF_T_F( Cond, T, F)   typename std::conditional<Cond,T,F>::type
 
#define ATMP_IS_ARR(T)   std::is_array <T>::value
 
#define ATMP_IS_CONST(T)   std::is_const <T>::value
 
#define ATMP_IS_ENUM(T)   std::is_enum <T>::value
 
#define ATMP_IS_INT(T)   std::is_integral<T>::value
 
#define ATMP_IS_PTR(T)   std::is_pointer <T>::value
 
#define ATMP_IS_SINT(T)   (std::is_integral<T>::value && std::is_signed <T>::value)
 
#define ATMP_IS_UINT(T)   (std::is_integral<T>::value && std::is_unsigned<T>::value)
 
#define ATMP_ISOF( T, TBase)   std::is_base_of <TBase, T >::value
 
#define ATMP_RC( T)   typename std::remove_const <T>::type
 
#define ATMP_RCV( T)   typename std::remove_cv <T>::type
 
#define ATMP_RCVP( T)
 
#define ATMP_RCVR( T)
 
#define ATMP_RE( T)   typename std::remove_extent <T>::type
 
#define ATMP_RECVP( T)
 
#define ATMP_RETURN_IF_1TP(TReturn, TParam, ...)
 
#define ATMP_RETURN_IF_2TP(TReturn, TParam1, TParam2, ...)
 
#define ATMP_RP( T)   typename std::remove_pointer <T>::type
 
#define ATMP_RR( T)   typename std::remove_reference<T>::type
 
#define ATMP_SELECT_IF_1TP(TParam, ...)
 
#define ATMP_SELECT_IF_2TP(TParam1, TParam2, ...)
 
#define ATMP_SELECT_IF_3TP(TParam1, TParam2, TParam3, ...)
 
#define ATMP_SELECT_IF_4TP(TParam1, TParam2, TParam3, TParam4, ...)
 
#define ATMP_T_IF(T, Cond)   typename std::enable_if<Cond,T>::type
 
#define ATMP_VOID_IF(Cond)   typename std::enable_if<Cond >::type