【发布时间】:2016-12-30 15:39:24
【问题描述】:
由于我找不到这样的函数(不正确?),我正在尝试创建一个编译时函数 (constexpr) 函数,它采用 std::array<T,n> arr 和 T t 并返回一个新的std::array<T,n+1> 和 t 添加到 arr 的末尾。我是这样开始的:
template <typename T, int n>
constexpr std::array<T,n+1> append(std::array<T,n> a, T t);
template <typename T>
constexpr std::array<T,1> append(std::array<T,0> a, T t)
{
return std::array<T,1>{t};
}
template <typename T>
constexpr std::array<T,2> append(std::array<T,1> a, T t)
{
return std::array<T,2>{a[0], t};
}
我在这里卡住了。我需要的是一种在初始化列表的第一个 n 位置扩展 a 的方法,然后添加 t 添加末尾。那可能吗?或者有其他方法吗?
【问题讨论】: