Синтаксис для указания аргумента шаблона для конструктора в списке инициализатора
Каков синтаксис для указания аргумента шаблона для конструктора в списке инициализатора? Обратите внимание, что конструктор является шаблоном, а не весь класс.
Например:
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;
};