vector
中的unique_ptr
很明显不可复制,如下面的代码片段所示。 is_copy_constructible
的相应特征返回真实的结果。为什么会这样?
#include <memory>
#include <vector>
// This static assert passes, which is surprising
static_assert(std::is_copy_constructible_v<std::vector<std::unique_ptr<int>>>);
std::vector<std::unique_ptr<int>>
test(const std::vector<std::unique_ptr<int>>& original)
{
std::vector<std::unique_ptr<int>> copy /* = original */;
// commented-out part does not compile, as expected
return copy;
}