Интересно, почему этот вид кода может получить размер тестового массива? Я не знаком с грамматикой в шаблоне. Возможно, кто-то мог бы объяснить значение кода в template<typename,size_t>
. Кроме того, ссылка также является предпочтительной.
#define dimof(array) (sizeof(DimofSizeHelper(array)))
template <typename T, size_t N>
char(&DimofSizeHelper(T(&array)[N]))[N];
void InitDynCalls()
{
char test[20];
size_t n = dimof(test);
printf("%d", n);
}