std::array
次の 2 つのテンプレート パラメータを使用します。
typename T // the element type
size_t N // the size of the array
std::array をパラメーターとして受け取る関数を定義したいのですが、この場合は特定の T に対してのみですchar
が、任意のサイズの配列に対してのみです。
以下は不正な形式です。
void f(array<char, size_t N> x) // ???
{
cout << N;
}
int main()
{
array<char, 42> A;
f(A); // should print 42
array<int, 42> B;
f(B); // should not compile
}
これはどう書くのが正しいのでしょうか?