为什么is_copy_constructible_v <vector <unique_ptr <t >>为真?

时间:2019-04-26 08:58:15

标签: c++ move typetraits

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;
}

0 个答案:

没有答案