Просто чтобы убедиться, что вы не пропустили, необходимо: <cstddef>
для std::size_t
и <new>
для размещения новых?
В противном случае эти функции будут правильными. Если это весь распределитель, у него есть другие недостатки, такие как отсутствие необходимых typedefs, address()
и max_size()
методов, а также шаблон rebind
.
Редактировать: единственная причина ошибки может заключаться в том, что у вас определен макрос в стиле функции.
#define T(z) zzz
заставит препроцессор заменить все T()
, с которыми он сталкивается, но оставит T
без скобок.
Вы можете просто переименовать аргумент шаблона.