テンプレートとして定義されたフィボナッチ数などのシーケンスがあると仮定しましょう。
template <unsigned int N> struct Fibonacci { unsigned int value = /*...*/; };
必要なのは、このシーケンスの最初の N 要素を含む constexpr 配列を取得することです。可変個引数テンプレートを使用して、それを行うことができます:
template <unsigned int ... Numbers>
struct FibArray
{
static constexpr array<unsigned int, sizeof...(Numbers)> value = { Fibonacci<Numbers>::value... };
};
// and then:
const auto fib_array = FibArray<1, 2, 3, 4, 5, 6, 7>::value;
インデックスの手動列挙を回避し、必要な値の数だけで同じ配列を取得することは可能ですか? このようなもの:
const array<unsigned, 7> fib_array = GetFirstNFibValues<7>::value;