[concept.copyconstructible] (original) (raw)

18 Concepts library [concepts]

18.4.14 Concept copy_constructible [concept.copyconstructible]

🔗

template<class T> concept [copy_constructible](#concept:copy%5Fconstructible "18.4.14 Concept copy_­constructible [concept.copyconstructible]") = [move_constructible](concept.moveconstructible#concept:move%5Fconstructible "18.4.13 Concept move_­constructible [concept.moveconstructible]")<T> && [constructible_from](concept.constructible#concept:constructible%5Ffrom "18.4.11 Concept constructible_­from [concept.constructible]")<T, T&> && [convertible_to](concept.convertible#concept:convertible%5Fto "18.4.4 Concept convertible_­to [concept.convertible]")<T&, T> && [constructible_from](concept.constructible#concept:constructible%5Ffrom "18.4.11 Concept constructible_­from [concept.constructible]")<T, const T&> && [convertible_to](concept.convertible#concept:convertible%5Fto "18.4.4 Concept convertible_­to [concept.convertible]")<const T&, T> && [constructible_from](concept.constructible#concept:constructible%5Ffrom "18.4.11 Concept constructible_­from [concept.constructible]")<T, const T> && [convertible_to](concept.convertible#concept:convertible%5Fto "18.4.4 Concept convertible_­to [concept.convertible]")<const T, T>;

1

#

If T is an object type, then let v be an lvalue of typeT or const T or an rvalue of type const T.

T models copy_constructible only if