Мой ctor по умолчанию:
Pool( void *const pStart,
const size_t size,
gen::Delegate<void, void*const> deallocator = gen::Delegate<void, void*const>::Build<&gen::NoOp>()) noexcept{...}
Я хочу также иметь этот ctor (c ++ 17, делегирование ctor и вычет аргумента шаблона класса):
template<class Allocator>
Pool(Allocator & allocator, const size_t amount)
:
Pool(
allocator.Allocate(TotalSizeRequired(amount), AlignOfBlock()),
TotalSizeRequired(amount),
gen::Delegate<void, void*const>::Build<Allocator, &Allocator::Deallocate>(&allocator))
{}
Разве это не должно работать ? Я продолжаю получать от .Allocate должен быть класс (ошибка C2228 на VS)