Здравствуйте, korzhik, Вы писали:
K>Здравствуйте, Аноним, Вы писали:
А>>Самый простой вариант:
А>>#define ARRAYSIZE(ar) (sizeof(ar)/sizeof(ar[0]))
А>>Этот вариант применим только к массивам объявленным статически:
А>>TCAHR ar[56];
А>>Как заставить компилятор генерировать ошибку если в качестве параметра передается указатель?
K>Если требуется compile-time integral constant, то можно так
K>K>template<class T, std::size_t N>
K>char(&lenghtOf(T(&)[N]))[N];
K>#define lenghtOf(arr) sizeof(lenghtOf(arr))
K>
упппс, где такие фокусы описываются, где про это можно почитать?
эт что-то из метапрограммирования, э?