[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<T> && constructible_from<T, T&> && [convertible_­to](concept.convertible#concept:convertible%5Fto "18.4.4 Concept convertible_­to [concept.convertible]")<T&, T> && constructible_from<T, const T&> && [convertible_­to](concept.convertible#concept:convertible%5Fto "18.4.4 Concept convertible_­to [concept.convertible]")<const T&, T> && constructible_from<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 type (possibly const) T or an rvalue of type const T.

T models copy_­constructible only if