Как сделать аргумент конструктора шаблона выводимым? - PullRequest
0 голосов
/ 12 апреля 2020

Мой 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)

...