Какова цель фиктивного сложения в этом макросе «количество элементов»?

) Visual C++ 10 поставляется с файлом stdlib.h, который, среди прочего, содержит этот gem:

template 
char (*__countof_helper(UNALIGNED _CountofType (&_Array)[_SizeOfArray]))[_SizeOfArray];

#define _countof(_Array) (sizeof(*__countof_helper(_Array)) + 0)

, который использует хитрый трюк с шаблоном для определения размера массива] и предотвращают передачу указателей в __countof .

Какова цель + 0в определении макроса? Какую проблему это решает?

8
задан Community 23 May 2017 в 12:10
поделиться