template<typename T> class A { public: A(T b) : a(b) { } private: T a; }; A object(12); //Why does it give an error?
Почему тип T не может быть автоматически выведен из аргумента 12?
12
Вывод аргумента шаблона применяется только к шаблонам функций и функций-членов, но не к шаблонам классов. Таким образом, ваш код плохо сформирован.
Вам необходимо явно указать аргумент шаблона.
A<int> object(12); //fine