массив не распадается на указатель, если он передан по константной ссылке в функции-шаблоне

Этот вопрос исходит из следующего:

c ++ передает массив в функцию question

, но, поскольку OP принял ответ, я думаю, никто его сейчас не прочитает.

I пробовал этот код на g ++. Кажется, что массив не распадается на указатель при передаче в эту функцию (функция возвращает правильный результат):

#include 

template 
std::size_t size_of_array (T const & array)
{
   return sizeof (array) / sizeof (*array);
}

int main ()
{
    int a [5];
    std::cout << size_of_array (a) << '\n';
}

Другой пользователь (острый зуб) сказал, что у него такое же поведение на VC ++ 10 с отключенным встраиванием.

Может кто-нибудь объяснит? Спасибо.

6
задан Community 23 May 2017 в 09:59
поделиться