【发布时间】:2021-02-22 13:37:48
【问题描述】:
我需要一个实现以下功能的函数:
template<typename T, std::size_t SIZE_L, std::size_t ...SIZE_R>
std::array<T, SIZE_L> concat(const std::array<T, SIZE_R...>&);
这应该将 RHS 上所有传递的数组连接成一个数组。 SIZE_R 的总和应该与 SIZE_L 相同——如果可能的话,不需要手动指定 SIZE_L。
此数组的元素类型将始终为 double。
【问题讨论】:
-
你可以使用
auto作为返回类型吗? -
SIZE_L->(... + SIZE_R)(C++17) -
T默认可构造吗? -
但是你可以这样做:
std::array<NonDefaultConstructible, 2> arr{{ NonDefaultConstructible(42), NonDefaultConstructible(51) }};... -
@Jarod42 -- 抱歉 -- 它是默认可构造的!