Wenn ich Folgendes tun darf:
template <typename T = int>
class Foo{
};
Warum darf ich hauptsächlich nicht folgendes tun?
Foo me;
Aber ich muss folgendes angeben:
Foo<int> me;
In C ++ 11 wurden Standardvorlagenargumente eingeführt, die meines Erachtens derzeit nur schwer zu verstehen sind.
Foo
vielleicht eine Vorlage Bezeichner sein oder könnte eine explizite Instanziierung in Abhängigkeit davon, ob ein Standardargument gibt. Behalten Sie besser die explizite Instanziierungssyntax bei. Stellen Sie sich das wie eine Funktionfoo
mit einem einzigen Standardparameter vor. Sie können es nicht so nennenfoo
, Sie nennen es mitfoo()
. Es ist sinnvoll, dies konsistent zu halten.