# std::Copyable

From cppreference.com
< cpp‎ | concepts

Defined in header `<concepts>` |  |
template <class T> concept Copyable = std::CopyConstructible<T> && std::Movable<T> && std::Assignable<T&, const T&>; |  | (since C++20)

The concept `Copyable<T>` specifies that `T` is an `Movable` object type that can also copied (that is, it supports copy construction and copy assignment).

### Notes

It is intended that `Copyable<T>` also requires std::Assignable<T&, const T> (assignment from const rvalue) and std::Assignable<T&, T&> (assignment from non-const lvalue) to be satisfied.

### See also

Movable (C++20) | specifies that an object of a type can be moved and swapped (concept)

Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/concepts/Copyable&oldid=104886"