stlsoft/util/constraints.hpp File Reference


Detailed Description

[C++ only] Definition of compile-time template constraints templates (Constraints Library).

#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>())


Generated on Thu Jun 10 08:58:11 2010 for STLSoft by  doxygen 1.5.6