Re: Как правильно определить ARRAYSIZE?
От: korzhik Россия  
Дата: 14.02.05 19:33
Оценка: 87 (11) :)
Здравствуйте, Аноним, Вы писали:

А>Самый простой вариант:

А>#define ARRAYSIZE(ar) (sizeof(ar)/sizeof(ar[0]))

А>Этот вариант применим только к массивам объявленным статически:

А>TCAHR ar[56];

А>Как заставить компилятор генерировать ошибку если в качестве параметра передается указатель?


Если требуется compile-time integral constant, то можно так

template<class T, std::size_t N> 
char(&lenghtOf(T(&)[N]))[N];

#define lenghtOf(arr) sizeof(lenghtOf(arr))
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.