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;
};