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]>
{};