This file makes definitions that are useful to template writers and only marginally useful for any other purpose. If you are not writing templates you most likely already know the things about your data types that the class queries provided below are meant to tell you. More...
#include <memory>
Go to the source code of this file.
Classes | |
struct | basicClassType< T > |
Defines a member, value, to be one of the basicClassTypes values. More... | |
struct | basicClassType< void > |
A type that contains enumeration value, named "value", which indicates the basic kind of data that a template parameter T refers to. This particular specialization of the template identifies the "void" type which cannot be identified by the more complex expression in the main specialization. More... | |
struct | EvalAnd< T, U, W, X > |
Assuming that the input template parameter types are designed to contain a compile time constant member, named value, which evaluates to either true or false, construct a compile time constant in this class, also named value, which will be true if and only if all the template parameter classes are true. More... | |
struct | EvalOr< T, U, W, X > |
Assuming that the input template parameter types are designed to contain a compile time constant member named value which evaluates to either true or false, construct a compile time constant in this class, also named value, which will be true if any of the template parameter classes is true. More... | |
struct | EvalTypeIf< bool, ZeroClass, OneClass > |
A mechanism for selecting between either of two types based on a compile time constant expression. More... | |
struct | EvalTypeIf< 0, ZeroClass, OneClass > |
struct | EvalTypeIf< 1, ZeroClass, OneClass > |
struct | false_value_type |
a type that means no. false_value_type::value == 1. More... | |
struct | isArithmeticType< T > |
isArithmeticType<T>::value is a compile time constant that is only true if T can be used in normal arithmetic operations. More... | |
struct | isArithmeticType< const void > |
isArithmeticType<void> is a variant of isArithmeticType that does not define a member named value and thus will will not compile correctly if an arithmetic type is required. More... | |
struct | isArithmeticType< void > |
isArithmeticType<void> is a variant of isArithmeticType that does not define a member named value and thus will will not compile correctly if an arithmetic type is required. More... | |
struct | isArrayType< T > |
isArrayType<T>::value is true if T is an array More... | |
struct | isArrayType< T const [N]> |
isArrayType<T>::value is true if T is an array More... | |
struct | isArrayType< T[N]> |
isArrayType<T>::value is true if T is an array More... | |
struct | isClassType< Type > |
isClassType<T>::value is a compile time constant that is true only if T is a class, or struct. More... | |
struct | isConstType< T > |
See isConstType<T>::value for a const expression telling you whether or not T is a "const" type or not. More... | |
struct | isConstType< const T > |
struct | isConvertibleType< From, To > |
isConvertible<From,To>::value is a compile time constant which is true if type From can be converted into type To without special syntax. More... | |
struct | isConvertibleType< const double, int > |
struct | isConvertibleType< const float, int > |
struct | isConvertibleType< const long double, int > |
struct | isConvertibleType< const void, To > |
A wrapper for a value that indicates that type "To" is a const void. More... | |
struct | isConvertibleType< double, int > |
struct | isConvertibleType< float, int > |
struct | isConvertibleType< long double, int > |
struct | isConvertibleType< void, To > |
A wrapper for a value that indicates that type "To" is a void. More... | |
struct | isEnumType< T > |
isEnumType<T>::value is a compile time constant that is only true if T is an enumeration type -- and not simple arithmetic value, pointer, class, function pointer, etc. More... | |
struct | isEnumType< const void > |
struct | isEnumType< void > |
struct | isFloatType< T > |
isFloatType<T>::value is a compile time constant that is only true if if T is a floating point number of some form. More... | |
struct | isFloatType< const void > |
A definition of isFloatType for const void type. Void is not a flaot type. More... | |
struct | isFloatType< void > |
A definition of isFloatType for void type. Void is not a flaot type. More... | |
struct | isFunctionType< T > |
isFunctionType<T>::value is a compile time constant that is only true only if T can be executed like a function of 0 to 9 parameters. More... | |
struct | isFunctionType< const void > |
struct | isFunctionType< void > |
struct | isIntegralType< T > |
isIntegralType<T>::value is a compile time constant that is only true if T is an int, short, char, long, long long, or unsigned versions thereof. More... | |
struct | isIntegralType< const void > |
isIntegralType<void> is a variant of isIntegralType that does not define a member named value and thus will will not compile correctly if an integral type is required. More... | |
struct | isIntegralType< void > |
isIntegralType<void> is a variant of isIntegralType that does not define a member named value and thus will will not compile correctly if an integral type is required. More... | |
struct | isPodType< T > |
isPodType<T>::value is a compile time constant that is true if T is a plain old data type and not a struct or union. More... | |
struct | ispodtype_impl< T > |
struct | ispodtype_impl< char > |
struct | ispodtype_impl< double > |
struct | ispodtype_impl< float > |
struct | ispodtype_impl< int > |
struct | ispodtype_impl< long > |
struct | ispodtype_impl< long long > |
struct | ispodtype_impl< short > |
struct | ispodtype_impl< T * > |
struct | ispodtype_impl< T *const > |
struct | ispodtype_impl< T[N]> |
struct | ispodtype_impl< unsigned char > |
struct | ispodtype_impl< unsigned int > |
struct | ispodtype_impl< unsigned long long > |
struct | ispodtype_impl< unsigned short > |
struct | isPointerType< T > |
isPointerType<T>::value is a compile time constant that is true only if T is a pointer or a builtin array -- which can be treated like a pointer. More... | |
struct | isPointerType< T * > |
struct | isPointerType< T *const > |
struct | isPointerType< T const * > |
struct | isPointerType< T const *const > |
struct | isPointerType< T const [N]> |
struct | isPointerType< T[N]> |
struct | isPolymorphicType< T > |
isPolymorphicType<T>::value is a compile time constant that is true only if T is a class with virtual methods. More... | |
struct | isPolymorphicType_impl< plainT > |
struct | d1 |
struct | d2 |
struct | isPolymorphicType_selector< is_class > |
isPolymorphicType_selector exists to work around a compile error problem: More... | |
struct | rebind< T > |
struct | isPolymorphicType_selector< true > |
struct | rebind< T > |
struct | isSameType< T, U > |
Member value tells you whether two types are the same. More... | |
struct | isSignedType< T > |
isSignedType<T>::value is a compile time constant that is true only if T is a signed number. More... | |
struct | isSignedType< const void > |
struct | isSignedType< void > |
struct | isTemplate< T > |
isTemplate<T>::value is a compile time constant that is only true if T is a template of between 1 and 9 template parameters. More... | |
struct | isUnsignedType< T > |
isUnsignedType<T>:value is a compile time constant which is true only if T is an unsigned numeric type. More... | |
struct | isUnsignedType< const void > |
struct | isUnsignedType< void > |
struct | not_a_type |
struct | pointerReferent< T > |
pointerReferent<T>::type is the type that T points to if T is a pointer. If T is not a pointer, then pointerReference<T>::type is the same as T. More... | |
struct | pointerReferent< T * > |
Determine the type referred to by a mutable pointer. See member "type". More... | |
struct | pointerReferent< T const * > |
Determine the type referred to by a const pointer. See member "type". More... | |
struct | pointerReferent< T const [N]> |
Determine the type referred to by a const array's name. See member "type". More... | |
struct | pointerReferent< T[N]> |
Determine the type referred to by an array's name. See member "type". More... | |
struct | removeAllExtents< T > |
Like removeCV<T>, this function removes attributes from its template parameter T. In this case, it removes arrayness, constness, pointerness, and volatility. It defines a member type, type, which is the same as it's template parameter, T, but without *, &, [], or volatile keywords. In sort, it tells you what you are really looking at. More... | |
struct | removeAllExtents< T[N]> |
See removeAllExtents<T> More... | |
struct | removeConst< T > |
typename removeConst<T>::type is a type that is the non-const version of T. For normal classes, removeConst<T>::type is the same as T, but for T which is const, type is the non-const form. More... | |
struct | removeCV< T > |
typename removeCV<T>::type is the same as type T but is neither const nor is it volatile. More... | |
struct | removeReference< T > |
typename removeReference<T>::type is the same as type T, but is not a reference. More... | |
struct | removeReference_impl< U > |
struct | removeReference_impl< V & > |
struct | removeVolatile< T > |
typename removeVolatile<T>::type is a type that is the non-volatile version of T. For normal classes, removeVolatile<T>::type is the same as T, but for T which is const, type is the non-const form. More... | |
struct | removeVolatile< volatile T > |
struct | true_value_type |
a type that means yes. true_value_type::value == 1. More... | |
Namespaces | |
namespace | cxxtls |
The namespace that encapsulates most of the functionality in the CXX toolkit. | |
Enumerations | |
enum | basicClassTypes { bctUnknownType = 0, bctVoidType = 1, bctIntegralType = 2, bctEnumType = 3, bctPointerType = 4, bctArrayType = 5, bctFloatType = 6, bctFunctionType = 7, bctClassType = 8 } |
A list of identifiers for the basic kinds of data types that can appear in a C++ program -- as defined by the template instantiator. More... | |
Functions | |
template<class Base , class Derived > | |
void | derivedFromBase (Base *bptr, Derived *&dref) |
Compute the address of a Derived class object given a pointer to a Base class object from which it is derived. |
This file makes definitions that are useful to template writers and only marginally useful for any other purpose. If you are not writing templates you most likely already know the things about your data types that the class queries provided below are meant to tell you.
Definition in file classTraits.h.