Якщо мені дозволено робити наступне:
template <typename T = int>
class Foo{
};
Чому в основному мені не дозволяють робити наступне?
Foo me;
Але я повинен вказати наступне:
Foo<int> me;
C ++ 11 представив аргументи шаблону за замовчуванням і зараз вони невловимі для мого повного розуміння.
Fooможе бути ідентифікатором шаблону або можуть бути явна конкретизацією в залежності від того, чи є аргумент за замовчуванням. Краще зберігайте синтаксис явного інстанції. Подумайте про це як про функціюfooз одним параметром за замовчуванням. Ви не можете назвати це такfoo, як виfoo(). Це має сенс дотримуватися цього.