C++ именованные требования: CopyConstructible
Материал из cppreference.com
Определяет, что экземпляр типа может быть создан копированием из lvalue expression.
[править] Требования
Тип T
удовлетворяет CopyConstructible если
- Тип
T
удовлетворяет MoveConstructible, и
Даны
-
v
, lvalue выражение типаT
илиconst T
или rvalue выражение типаconst T
-
u
, произвольный идентификатор
Следующие выражения должны быть допустимыми и иметь указанные эффекты
Выражение | Постусловие |
---|---|
T u = v; | Значение u равнозначно значению v .
Значение |
T(v) | Значение T(v) равнозначно значениюv .
Значение |
Выражение v.~T() также должно быть допустимым, и, для левостороннего значения |
[править] Заметки
До C++11, классы, которые переопределяли operator&
не были CopyConstructible и поэтому их нельзя было использовать в STL. Начиная с C++11, стандартная библиотека использует std::addressof всякий раз, когда требуется адрес объекта.
[править] Смотри также
(C++11)(C++11)(C++11) |
проверяет, есть ли у типа конструктор копирования (шаблон класса) |
(C++20) |
указывает, что объект типа может быть создан копированием и перемещением (концепт) |