void fun (char (&a)[2]) // 1D reference
{}
template<typename T, int SIZE>
void funT (T (&a)[SIZE]) // 1D reference
{}
int main ()
{
char c[2][2]; // 2D array
fun(c); // error
funT(c); // ok !!!??
}
Я могу ожидать, что fun ()
выдаст ошибку, но почему funT ()
работает нормально!
Есть ли ссылка в стандарте для такого поведения или Это ошибка на языке C ++?