Should the type trait be able to handle cases such as std::vector < std::unique_ptr > and detect that it\'s not copy constructible?
std::vector < std::unique_ptr >
H
Table 49 of the C++11 standard lists what conditions a class has to fulfil for is_copy_constructable::value to be true, and that's unfortunately not much:
is_copy_constructable::value
is_constructable::value is true
is_constructable::value
true
So if std::vector has a copy constructor it passes the test.
std::vector