Концепции

Идея концепций перекликается с понятием интерфейсов и является описанием требований к сущностям стандартной библиотеки С++.

Базовые концепции

  • DefaultConstructible

    • определяет наличие конструктора по умолчанию.

  • MoveConstructible

    • объект строится передачей владения. (конструктор перемещения X(X&&) C++11)

  • CopyConstructible

    • определяет наличие конструктора копирования.

  • MoveAssignable

    • определяет наличие операции перемещения (X& operator=(X&&) C++11)

  • CopyAssignable

    • определяет наличие оператора копирования

  • Destructible

    • требует наличие деструктора

Концепции размещения

  • TriviallyCopyable

  • TrivialType

  • StandardLayoutType

  • PODType

Library-wide

  • EqualityComparable

    • оператор равенства

  • LessThanComparable

    • оператор упорядочения

  • Swappable

  • ValueSwappable

  • NullablePointer

  • Hash

  • Allocator

  • FunctionObject

    • наличие оператора круглые скобки (функтор)

  • Callable

  • Predicate

    • функтор, возвращающий логическое значение

  • BinaryPredicate

    • предикат с двумя параметрами. Например, операторы сравнения и упорядочения являются бинарными предикатами.

  • Compare

Last updated