Синтаксис для указания аргумента шаблона для конструктора в списке инициализатора

Каков синтаксис для указания аргумента шаблона для конструктора в списке инициализатора? Обратите внимание, что конструктор является шаблоном, а не весь класс.

Например:

class Member {
    ...
};

class SpecializedMember : public Member {
    ...
};

class C {
public:
    template<class U> C() {
        m_member = std::make_unique<U>();
    }

    Member& getMember() { return *m_member; }

private:
    std::unique_ptr<Member> m_member;
};

class User {
public:
   User() : m_c{} // Doesn't compile; How can the template class (e.g. SpecializedMember) be specified here?
   {
       // ...
   } 

private:
   C m_c;
};

0 ответов

Другие вопросы по тегам