c++ - 为什么 is_copy_constructible_v> 真的吗?
问题描述
正如下面的代码片段所证明的, A vector
of unique_ptr
s 显然是不可复制的。尽管这一点,相应的 traitis_copy_constructible
返回 true。这是为什么?
#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;
}
解决方案
推荐阅读
- android - 如何从 Kotlin 中的内部类 [AsyncTask] 访问扩展功能?
- .net - 如何在 API 管理中配置 Azure AAD 并从 .NET 中的 Web/控制台应用程序调用 API 管理端点
- laravel - Laravel 6.9 belongsToMany 关系返回一个集合
- java - 在 Java 中不使用任何凭据即可阅读 Google 电子表格
- arrays - 按单元格中的倒数第二个字母排序数据,然后是第一个 - Google Apps Script / Google Sheets
- git - Git 仅在 GitLab 中记录模棱两可的参数
- javascript - 如何在稍后通过视图文件包含的其他 js 文件中使用 laravel-mix 文件(webpack)中的 js 函数?
- c - 将裸机 ARM 的 Rust 代码正确编译为静态库和 x86_64 的二进制文件?
- javascript - 窗口(浏览器)和全局(Node.js)对象之间的区别
- python - 在python中对数据框中的列(日期时间)进行排序的最快方法