#include <stlsoft/stlsoft.h>
#include <stlsoft/meta/size_of.hpp>
Go to the source code of this file.
Namespaces | |
namespace | stlsoft |
Classes | |
struct | must_have_base |
Constraint to ensure that the one type is convertible to another via inheritance. More... | |
struct | must_be_derived |
Constraint to ensure that the one type is convertible to another via inheritance, but is not the same type. More... | |
struct | must_be_same_size |
Constrains two types to be of the same size. More... | |
struct | must_be_subscriptable |
Constraint to enforce that a given type is an array, or pointer, or user defined type which is amenable to subsripting (i.e. More... | |
struct | must_subscript_as_decayable_pointer |
Constraint to enforce that a given type is an actual array or pointer, rather than a user-defined type with a subscript operator. More... | |
union | must_be_pod |
Constraint to ensure that a type is a built-in or trivial type. More... | |
union | must_be_pod_or_void |
Constraint to ensure that a type is a built-in or trivial type, or is void . More... | |
Defines | |
#define | stlsoft_constraint_must_be_pod(T) STLSOFT_STATIC_ASSERT(sizeof(stlsoft_ns_qual(must_be_pod)<T>::constraint()) != 0) |
#define | stlsoft_constraint_must_be_pod_or_void(T) STLSOFT_STATIC_ASSERT(sizeof(stlsoft_ns_qual(must_be_pod_or_void)<T>::constraint()) != 0) |
#define | stlsoft_constraint_must_be_same_size(T1, T2) static_cast<void>(stlsoft_ns_qual(must_be_same_size)<T1, T2>()) |
#define | stlsoft_constraint_must_be_subscriptable(T) static_cast<void>(stlsoft_ns_qual(must_be_subscriptable)<T>()) |
#define | stlsoft_constraint_must_have_base(D, B) static_cast<void>(stlsoft_ns_qual(must_have_base)<D, B>()) |
#define | stlsoft_constraint_must_be_derived(D, B) static_cast<void>(stlsoft_ns_qual(must_be_derived)<D, B>()) |