Явное задание шаблонного параметра конструктора
Допустим, есть класс с конструктором. У конструктора есть шаблонный параметр:
template<typename T> class A {
T v;
public:
template<typename U> A(T p,U u) : v(p)
{
std::cout << u << v << std::endl;
}
};
Тип U
может быть выведен:
int main()
{
A<int> b(2,'A'); // Ok, U = char
auto x = A<int>::A(1,'A'); // Ok, U = char
}
А можно ли задать его явно, не через аргумент конструктора? Как-то так:
int main()
{
A<int,char> b(2,'A'); // не работает
A<int><char> b(2,'A'); // не работает
auto y= A<int>::A<char>(2, 'A'); // не работает
}