c++ - std::make_array 的目的是什么? C++20 中还需要它吗?

标签 c++ templates c++-standard-library

我刚刚发现在库基础 TS v2 中有一个 make_array (std::experimental::make_array) 模板,允许从其参数推导数组类型。我猜主要目的是启用 auto 的使用,类似于 cppreference 上的示例:

auto x = std::experimental::make_array(1,2,3,4,5);

是否有我看不到的不同动机?

有了 C++20 中新的类型推导工具,我们还能指望 make_array 有一天会成为标准吗?还是它已经过时了?

最佳答案

make_array(1,'2',3,4,5)make_array<float>(1,'2',3,4,5)有效,而 Class Template Argument Deduction (CTAD) std::array 只允许相同类型。

关于c++ - std::make_array 的目的是什么? C++20 中还需要它吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59289612/

相关文章:

c++ - 为什么声明函数的顺序会改变 SFINAE 选择的重载?

c++ - C++11 中访问指向 std::vector 中元素 n 的指针的标准方法是什么?

c++ - <cmath> 函数在 C++17 中必须是 `noexcept` 吗?

c++ - gcc 的 -Wconversion 是否与使用比 int 短的整数类型的复合赋值(+= 等)不兼容?

c++ - 如何检查用户输入是否有效? (C++)

c++ - 如何使用 C++ opencv 2.4.10 查找视频的帧率?

c++ - 模拟 C++ 标准库

c++ - 在 C++ 中通过正则表达式搜索(大)文件

c# - 没有集合的 TreeView 递归

Azure ARM 模板 : DocumentDB primaryMasterKey as OUTPUT