4

What's the syntax for specifying a template argument for a constructor in an initializer list? Note just the constructor is templated, not the entire class.

For example:

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;
};
BoBTFish
  • 19,167
  • 3
  • 49
  • 76
Danra
  • 9,546
  • 5
  • 59
  • 117

0 Answers0