Этот вопрос исходит из следующего:
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 с отключенным встраиванием.
Может кто-нибудь объяснит? Спасибо.