Reference

  1. Functions
  2. Classes
  3. Basic Concept Checking Classes
  4. Iterator Concept Checking Classes
  5. Function Object Concept Checking Classes
  6. Container Concept Checking Classes
  7. Basic Archetype Classes
  8. Iterator Archetype Classes
  9. Function Object Archetype Classes
  10. Container Archetype Classes

Functions

  template <class Concept>
  void function_requires();

Classes

  template <class Concept>
  struct class_requires {
    typedef ... check;
  };
  // Make sure that Type1 and Type2 are exactly the same type.
  // If they are not, then the nested typedef for type will
  // not exist and cause a compiler error.
  template <class Type1, class Type2>
  struct require_same {
    typedef ... type;
  };
  // usage example
  typedef typedef require_same::type req1; // this will compile OK
  typedef typedef require_same::type req1; // this will cause a compiler error

Basic Concept Checking Classes

  template <class T> struct Integer_concept; // Is T a built-in integer type?
  template <class T> struct SignedIntegerConcept; // Is T a built-in signed integer type?
  template <class X, class Y> struct ConvertibleConcept; // Is X convertible to Y?
  template <class T> struct AssignableConcept;
  template <class T> struct DefaultConstructibleConcept;
  template <class T> struct CopyConstructibleConcept;
  template <class T> struct BooleanConcept;
  template <class T> struct EqualityComparableConcept;
  // Is class T equality comparable on the left side with type Left?
  template <class T, class Left> struct LeftEqualityComparableConcept;
  template <class T> struct LessThanComparableConcept;

Iterator Concept Checking Classes

  template <class Iter> struct TrivialIteratorConcept;
  template <class Iter> struct Mutable_TrivialIteratorConcept;
  template <class Iter> struct InputIteratorConcept;
  template <class Iter, class T> struct OutputIteratorConcept;
  template <class Iter> struct ForwardIteratorConcept;
  template <class Iter> struct Mutable_ForwardIteratorConcept;
  template <class Iter> struct BidirectionalIteratorConcept;
  template <class Iter> struct Mutable_BidirectionalIteratorConcept;
  template <class Iter> struct RandomAccessIteratorConcept;
  template <class Iter> struct Mutable_RandomAccessIteratorConcept;

Function Object Concept Checking Classes

  template <class Func, class Return> struct GeneratorConcept;
  template <class Func, class Return, class Arg> struct UnaryFunctionConcept;
  template <class Func, class Return, class First, class Second> struct BinaryFunctionConcept;
  template <class Func, class Arg> struct UnaryPredicateConcept;
  template <class Func, class First, class Second> struct BinaryPredicateConcept;
  template <class Func, class First, class Second> struct Const_BinaryPredicateConcept {;

Container Concept Checking Classes

  template <class C> struct ContainerConcept;
  template <class C> struct Mutable_ContainerConcept;

  template <class C> struct ForwardContainerConcept;
  template <class C> struct Mutable_ForwardContainerConcept;

  template <class C> struct ReversibleContainerConcept;
  template <class C> struct Mutable_ReversibleContainerConcept;

  template <class C> struct RandomAccessContainerConcept;
  template <class C> struct Mutable_RandomAccessContainerConcept;

  template <class C> struct SequenceConcept;
  template <class C> struct FrontInsertionSequenceConcept;
  template <class C> struct BackInsertionSequenceConcept;

  template <class C> struct AssociativeContainerConcept;
  template <class C> struct UniqueAssociativeContainerConcept;
  template <class C> struct MultipleAssociativeContainerConcept;
  template <class C> struct SimpleAssociativeContainerConcept;
  template <class C> struct PairAssociativeContainerConcept;
  template <class C> struct SortedAssociativeContainerConcept;

Basic Archetype Classes

  class null_archetype; // A type that models no concepts.
  template <class Base = null_archetype> class default_constructible_archetype;
  template <class Base = null_archetype> class assignable_archetype;
  template <class Base = null_archetype> class copy_constructible_archetype;
  template <class Left, class Base = null_archetype> class left_equality_comparable_archetype;
  template <class Base = null_archetype> class equality_comparable_archetype;
  template <class T, class Base = null_archetype> class convertible_to_archetype;

Iterator Archetype Classes

  template <class ValueType> class trivial_iterator_archetype;
  template <class ValueType> class mutable_trivial_iterator_archetype;
  template <class ValueType> class input_iterator_archetype;
  template <class ValueType> class forward_iterator_archetype;
  template <class ValueType> class bidirectional_iterator_archetype;
  template <class ValueType> class random_access_iterator_archetype;

Function Object Archetype Classes

  template <class Arg, class Return> class unary_function_archetype;
  template <class Arg1, class Arg2, class Return> class binary_function_archetype;
  template <class Arg> class predicate_archetype;
  template <class Arg1, class Arg2> class binary_predicate_archetype;

Container Archetype Classes

UNDER CONSTRUCTION