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 ++?