Since I was not able to find such a function (incorrectly?), I'm trying to make a compile-time function (constexpr
) function which takes a std::array<T,n> arr
and a T t
and returns a new std::array<T,n+1>
with t
added to the end of arr
. I've started with something like this:
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};
}
Here I get stuck. What I need is a way to expand a
in the first n
places of the initializer list, and then add t
add the end. Is that possible? Or is there another way of doing this?
Aucun commentaire:
Enregistrer un commentaire