Здравствуйте, Аноним, Вы писали:
А>Самый простой вариант:
А>#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))