OKlibrary  0.2.1.6
OKlib::Concepts Namespace Reference

Concept definitions and accompanying generic tests. More...

Namespaces

namespace  ConceptTests
 

Contains macros for testing concept definitions (and related constructions).


namespace  implementation_has_concept_tag
namespace  TestIndex
namespace  tests
namespace  traits

Classes

struct  AtomicCondition_tag
class  AtomicCondition
 Concept for basic atomic conditions. More...
class  AtomicCondition_Archetype
class  FullyEqualityComparable
 Concept FullyEqualityComparable: == and !=. More...
struct  FullyEqualityComparable_tag
class  FullyEqualityComparable_Archetype
class  FullyLessThanComparable
 Concept FullyLessThanComparable: <, >, <=, >=. More...
struct  FullyLessThanComparable_tag
class  FullyLessThanComparable_Archetype
class  LinearOrder
 Concept LinearOrder: <, >, <=, >= and ==, !=. More...
struct  LinearOrder_tag
class  LinearOrder_Archetype
class  FullyConstructible
 Concept FullyConstructible: All four special member functions are available. More...
struct  FullyConstructible_tag
class  FullyConstructible_Archetype
class  ConstructibleCEq
 Concept ConstructibleCEq adds CopyConstructible to FullyEqualityComparable. More...
struct  ConstructibleCEq_tag
class  ConstructibleCEq_Archetype
class  ConstructibleCAEq
 Concept ConstructibleCAEq adds Assignable to ConstructibleCEq. More...
struct  ConstructibleCAEq_tag
class  ConstructibleCAEq_Archetype
class  ConstructibleDEq
 Concept ConstructibleDEq adds DefaultConstructible to FullyEqualityComparable. More...
struct  ConstructibleDEq_tag
class  ConstructibleDEq_Archetype
class  FullyConstructibleEq
 Concept FullyConstructibleEq combines concepts FullyEqualityComparable and FullyConstructible (plus natural semantical requirements enabled by equality). More...
struct  FullyConstructibleEq_tag
class  FullyConstructibleEq_Archetype
class  EqualitySubstitutable
 Concept EqualitySubstitutable: Refines EqualityComparable with the requirement, that equal entities are substitution-equivalent. More...
struct  EqualitySubstitutable_tag
class  EqualitySubstitutable_Archetype
class  ConstCorrect
 Concept ConstCorrect: Semantical requirement, that operations allowed for const objects maintain substitution-equivalence. More...
struct  ConstCorrect_tag
class  ConstCorrect_Archetype
class  FullyEqualityComparable_Axiom_equal_vs_unequal
 Checks for objects a, b whether either (a == b and not (a != b)) or (not (a == b) and a != b) holds. More...
class  FullyEqualityComparable_basic_test_one_object
 Basic test for FullyEqualityComparable, given one object. More...
class  FullyEqualityComparable_basic_test_two_objects
 Basic test for FullyEqualityComparable, given two objects. More...
class  FullyEqualityComparable_basic_test_three_objects
 Basic test for FullyEqualityComparable, given three objects. More...
class  ConstructibleCEq_Axiom_copy_eq
 Checks for object a whether for x copy-constructed from a we have x == a. More...
class  ConstructibleCEq_basic_test_one_object
 Basic test for ConstructibleCEq, given one object. More...
class  ConstructibleCEq_basic_test_two_objects
 Basic test for ConstructibleCEq, given two objects. More...
class  ConstructibleCEq_basic_test_three_objects
 Basic test for ConstructibleCEq, given three objects. More...
class  ConstructibleCAEq_Axiom_assign_eq
 Checks whether after assignment x = b we have x == b. More...
class  ConstructibleCAEq_basic_test_one_object
 Basic test for ConstructibleCAEq, given one object. More...
class  ConstructibleCAEq_basic_test_two_objects
 Basic test for ConstructibleCAEq, given two objects. More...
class  ConstructibleCAEq_basic_test_three_objects
 Basic test for ConstructibleCAEq, given three objects. More...
class  ConstructibleDEq_Axiom_default_eq
 Checks whether two default constructed objects are equal. More...
class  ConstructibleDEq_basic_test_no_object
 Basic test for ConstructibleDEq (not requiring any object). More...
class  ConstructibleDEq_basic_test_one_object
 Basic test for ConstructibleDEq, given one object. More...
class  ConstructibleDEq_basic_test_two_objects
 Basic test for ConstructibleDEq, given two objects. More...
class  ConstructibleDEq_basic_test_three_objects
 Basic test for ConstructibleDEq, given three objects. More...
class  FullyConstructibleEq_basic_test_no_object
 Basic test for FullyConstructibleEq (not requiring any object). More...
class  FullyConstructibleEq_basic_test_one_object
 Basic test for FullyConstructibleEq, given one object. More...
class  FullyConstructibleEq_basic_test_two_objects
 Basic test for FullyEqualityComparable, given two objects. More...
class  FullyConstructibleEq_basic_test_three_objects
 Basic test for FullyEqualityComparable, given three objects. More...
struct  FullyLessThanComparable_Axiom_greater_positive
struct  FullyLessThanComparable_Axiom_greater_negative
struct  FullyLessThanComparable_Axiom_less_equal_positive
struct  FullyLessThanComparable_Axiom_less_equal_negative
struct  FullyLessThanComparable_Axiom_greater_equal_positive
struct  FullyLessThanComparable_Axiom_greater_equal_negative
struct  FullyLessThanComparable_basic_test_one_object
struct  LinearOrder_Axiom_positive
struct  LinearOrder_Axiom_negative
struct  LinearOrder_basic_test_one_object
struct  ConceptsBase_tag
class  IsTagModel
 Boolean metafunction: IsTagModel<T, tag> is true iff the concept tag of T is derived from (or equal to) tag. More...
class  IsConceptTag
 Boolean metafunction: IsConceptTag<Tag> is true iff Tag is strictly derived from OKlib::Concepts::ConceptsBase_tag. More...
class  HasConceptTag
 Boolean metafunction: HasConceptTag<T> is true iff T has a nested type concept_tag which is a concept tag. More...
class  Test_ConceptTag_T
class  Test_IsTagModel_T_concept_tag
class  Test_IsConceptTag_Tag
class  Test_HasConceptTag_T
struct  OutputStreamable_tag
struct  OutputStreamable
class  OutputStreamable_Archetype
class  VariablesLiterals_tag
 Tags for types which are used as variables and as literals. More...
class  WithConceptTag
 Basic internal concept, statically asserting the concept tag. More...
struct  WithConceptTag_tag
class  WithConceptTag_Archetype
class  BasicRequirements
 Root of the concept hierarchy for the library, requiring a concept tag and const correctness. More...
struct  BasicRequirements_tag
class  BasicRequirements_Archetype
class  convertible_to_bool
 Fully constructible class, implicitely convertible to bool. More...
struct  Literals_tag
class  Literals
 Basic literals concept. More...
class  Literals_Archetype
struct  IncludeDirective_tag
struct  IncludeDirective
class  IncludeDirective_Archetype
struct  ResultElement_tag
class  ResultElement
 Root class for the concept hierarchy about result elements (requiring only types). More...
class  ResultElement_Archetype
struct  ResultElementWithOrder_tag
class  ResultElementWithOrder
 Refines concept ResultElement by requiring a linear order on result elements. More...
class  ResultElementWithOrder_Archetype
struct  ResultElementWithName_tag
class  ResultElementWithName
 Refines concept ResultElementWithOrder by adding the possibility to construct result elements with a given name, and to query this name. The order on such result elements must be given by the natural order on the names. More...
class  ResultElementWithName_Archetype
class  ResultElement_basic_test
 Test function for Concepts::ResultElement, which just checks the syntactic requirements. More...
class  ResultElementWithOrder_basic_test
 Test function for Concepts::ResultElementWithOrder, checking syntax and applying the basic tests for linear order using one object. More...
class  ResultElementWithName_Axiom_name_equality
 Sub-test function for Concepts::ResultElementWithName, testing that equal names yield equal result elements. More...
class  ResultElementWithName_Axiom_name_lessthan
 Sub-test function for Concepts::ResultElementWithName, testing that if the name is less, then the result element is less. More...
class  ResultElementWithName_basic_test
 Test function for Concepts::ResultElementWithName, checking the syntax and that the order on the names carries over to the result elements. More...
class  EqualityComparable
 Concept EqualityComparable according to Table 28 in the standard (plus const-correctness). More...
struct  EqualityComparable_tag
class  EqualityComparable_Archetype
class  LessThanComparable
 LessThanComparable according to Table 29 in the standard (plus const-correctness) More...
struct  LessThanComparable_tag
class  LessThanComparable_Archetype
class  Destructible
 Concept Destructible (an obvious addition to the standard). More...
struct  Destructible_tag
class  Destructible_Archetype
class  CopyConstructible
 Concept CopyConstructible. More...
struct  CopyConstructible_tag
class  CopyConstructible_Archetype
class  DefaultConstructible
 Concept DefaultConstructible. More...
struct  DefaultConstructible_tag
class  DefaultConstructible_Archetype
class  Assignable
 Concept Assignable according to Table 64 in the standard. More...
struct  Assignable_tag
class  Assignable_Archetype
class  EqualityComparable_Axiom_reflexivity
 Checks for objects a whether a == a holds. More...
class  EqualityComparable_Axiom_symmetry
 Checks for objects a, b whether either (a == b and b == a) holds or (not (a == b) and not (b == a)). More...
class  EqualityComparable_Axiom_transitivity
 Checks for objects a, b, c with a == b and b == c, whether a == c holds. More...
class  EqualityComparable_basic_test_one_object
 Basic test for EqualityComparable, given one object. More...
class  EqualityComparable_basic_test_two_objects
 Basic test for EqualityComparable, given two objects. More...
class  EqualityComparable_basic_test_three_objects
 Basic test for EqualityComparable, given two objects. More...
class  LessThanComparable_Axiom_irreflexivity
 Checks for objects a whether not (a < a) holds. More...
class  LessThanComparable_Axiom_asymmetry
 Checks that not at the same time a < b and b < a holds. More...
class  LessThanComparable_Axiom_transitivity
 Checks for objects a, b, c with a < b and b < c, whether a < c holds. More...
class  LessThanComparable_Axiom_equivalence_reflexivity
 Checks for objects a whether a ~ a holds. More...
class  LessThanComparable_Axiom_equivalence_symmetry
 Checks for objects a whether a ~ b => b ~ a holds. More...
class  LessThanComparable_Axiom_equivalence_transitivity
 Checks for objects a, b, c with a ~ b and b ~ c, whether a ~ c holds. More...
class  LessThanComparable_basic_test_one_object
 Basic test for LessThanComparable, given one object. More...
class  LessThanComparable_basic_test_two_objects
 Basic test for LessThanComparable, given two objects. More...
class  LessThanComparable_basic_test_three_objects
 Basic test for LessThanComparable, given three objects. More...
class  Container
 Concept Container according to Table 65 in the standard. More...
struct  Container_tag
class  Container_Archetype
class  Test_ContainerConcept
 Test for a container concept by instantiating container-types from the standard library. More...
class  InputIterator
 Concept InputIterator according to the standard. More...
struct  InputIterator_tag
class  InputIterator_Archetype
class  MultiPassInputIterator
 Concept MultiPassInputIterator according to Boost. More...
struct  MultiPassInputIterator_tag
struct  MultiPassInputIterator_Archetype
class  ForwardIterator
 Concept ForwardIterator according to the standard. More...
struct  ForwardIterator_tag
class  ForwardIterator_Archetype
struct  Variables_tag
class  Variables
 Basic variables concept. More...
class  Variables_Archetype
struct  VariablesWithIndex_tag
class  VariablesWithIndex
 Refinement of concept Concepts::Variables, adding an index_type, and variables can be implicitely converted to this index type. More...
struct  VariablesWithIndex_Archetype
struct  VariablesAsIndex_tag
class  VariablesAsIndex
 Refinement of concept Concepts::VariablesWithIndex, requiring a constructor of variables from index values. More...
struct  VariablesAsIndex_Archetype
class  Variables_Axiom_singular_variables_false
 Test function for Concepts::Variables, checking that default-created variables are singular. More...
class  Variables_Axiom_singular_variables_identity
 Test function for Concepts::Variables, checking that two singular variables are identical. More...
class  Variables_basic_test
 Basic test function for Concepts::Variables, which checks syntax, singularity of default-constructed variables, and applies the basic test for the linear order. More...
class  VariablesWithIndex_Axiom_index_nonnegative
 Test function for concept Concepts::VariablesWithIndex, checking that indices of variables are not negative. More...
class  VariablesWithIndex_Axiom_index_zero_positive
 Test function for concept Concepts::VariablesWithIndex, checking that singular variables have index 0. More...
class  VariablesWithIndex_Axiom_index_zero_negative
 Test function for concept Concepts::VariablesWithIndex, checking that if the index is zero, then the variable is singular. More...
class  VariablesWithIndex_Axiom_index_identity
 Test function for concept Concepts::VariablesWithIndex, checking that variables with identical indices are identical. More...
class  VariablesWithIndex_basic_test
 Basis text function for concept Concepts::VariablesWithIndex, checking syntax and that singular variables have index 0, and applying the basic test for concept Concept::Variables. More...
class  VariablesAsIndex_Axiom
 Test function for concept Concepts::VariablesAsIndex, checks that variables constructed from an index return the same index. More...
class  VariablesAsIndex_basic_test
 Basic test function for concept Concepts::VariablesAsIndex, checking syntax, applying the basic test for Concepts::VariablesWithIndex, and checking creation of variables from indices. More...

Functions

 OKLIB_BASIC_CONCEPT_TEST_TAG (WithConceptTag) OKLIB_BASIC_CONCEPT_TEST_ARCHETYPE(WithConceptTag) OKLIB_BASIC_CONCEPT_TEST_TAG(BasicRequirements) OKLIB_BASIC_CONCEPT_TEST_ARCHETYPE(BasicRequirements) namespace Macro_tests

Detailed Description

Concept definitions and accompanying generic tests.


Function Documentation