OKlibrary  0.2.1.6
Basics.hpp File Reference

Basic concepts, extending the basic concepts from the standard. More...

#include <boost/concept_check.hpp>
#include <OKlib/Concepts/ConceptsBase.hpp>
#include <OKlib/Concepts/std_Basics.hpp>

Go to the source code of this file.

Classes

class  OKlib::Concepts::FullyEqualityComparable< T >
 Concept FullyEqualityComparable: == and !=. More...
struct  OKlib::Concepts::FullyEqualityComparable_tag
class  OKlib::Concepts::FullyEqualityComparable_Archetype
class  OKlib::Concepts::FullyLessThanComparable< T >
 Concept FullyLessThanComparable: <, >, <=, >=. More...
struct  OKlib::Concepts::FullyLessThanComparable_tag
class  OKlib::Concepts::FullyLessThanComparable_Archetype
class  OKlib::Concepts::LinearOrder< T >
 Concept LinearOrder: <, >, <=, >= and ==, !=. More...
struct  OKlib::Concepts::LinearOrder_tag
class  OKlib::Concepts::LinearOrder_Archetype
class  OKlib::Concepts::FullyConstructible< T >
 Concept FullyConstructible: All four special member functions are available. More...
struct  OKlib::Concepts::FullyConstructible_tag
class  OKlib::Concepts::FullyConstructible_Archetype
class  OKlib::Concepts::ConstructibleCEq< T >
 Concept ConstructibleCEq adds CopyConstructible to FullyEqualityComparable. More...
struct  OKlib::Concepts::ConstructibleCEq_tag
class  OKlib::Concepts::ConstructibleCEq_Archetype
struct  OKlib::Concepts::ConstructibleCEq_Archetype::convertible_to_bool
class  OKlib::Concepts::ConstructibleCAEq< T >
 Concept ConstructibleCAEq adds Assignable to ConstructibleCEq. More...
struct  OKlib::Concepts::ConstructibleCAEq_tag
class  OKlib::Concepts::ConstructibleCAEq_Archetype
struct  OKlib::Concepts::ConstructibleCAEq_Archetype::convertible_to_bool
class  OKlib::Concepts::ConstructibleDEq< T >
 Concept ConstructibleDEq adds DefaultConstructible to FullyEqualityComparable. More...
struct  OKlib::Concepts::ConstructibleDEq_tag
class  OKlib::Concepts::ConstructibleDEq_Archetype
struct  OKlib::Concepts::ConstructibleDEq_Archetype::convertible_to_bool
class  OKlib::Concepts::FullyConstructibleEq< T >
 Concept FullyConstructibleEq combines concepts FullyEqualityComparable and FullyConstructible (plus natural semantical requirements enabled by equality). More...
struct  OKlib::Concepts::FullyConstructibleEq_tag
class  OKlib::Concepts::FullyConstructibleEq_Archetype
struct  OKlib::Concepts::FullyConstructibleEq_Archetype::convertible_to_bool
class  OKlib::Concepts::EqualitySubstitutable< T >
 Concept EqualitySubstitutable: Refines EqualityComparable with the requirement, that equal entities are substitution-equivalent. More...
struct  OKlib::Concepts::EqualitySubstitutable_tag
class  OKlib::Concepts::EqualitySubstitutable_Archetype
class  OKlib::Concepts::ConstCorrect< T >
 Concept ConstCorrect: Semantical requirement, that operations allowed for const objects maintain substitution-equivalence. More...
struct  OKlib::Concepts::ConstCorrect_tag
class  OKlib::Concepts::ConstCorrect_Archetype

Namespaces

namespace  OKlib
 

All components of the OKlibrary.


namespace  OKlib::Concepts
 

Concept definitions and accompanying generic tests.



Detailed Description

Basic concepts, extending the basic concepts from the standard.

Extends equality concepts, order concepts and constructibility concepts; adding new concepts for substitutability and const correctness.

The main concepts are:

  • Concepts::FullyEqualityComparable
  • Concepts::FullyLessThanComparable
  • Concepts::LinearOrder (combines the above two)
  • Concepts::FullyConstructible
  • Concepts::FullyConstructibleEq (adds FullyEqualityComparable)
  • Concepts::FullyConstructibleLt (adds FullyLessThanComparable)
  • Concepts::FullyConstructibleLo (adds LinearOrder)
  • Concepts::EqualitySubstitutable (strengthens EqualityComparable).

Definition in file Basics.hpp.