void f1(int (&)[8])
{}
void f2(int (&)[])
{}
int main()
{
int a[8];
f1(a); // OK
f2(/* What should I put here? */); // ???
return 0;
}
f2を呼び出すにはどうすればよいですか?
PS:void f2(int(&)[]){}はVC++2012では有効です。
次のことを考慮してください。
template<class T>
struct A
{};
template<class T>
struct A<T[]>
{};
template<class T, size_t size>
struct A<T[size]>
{};