模板默认参数
如果我可以做以下事情:
template <typename T = int> class Foo{ };
为什么我不允许主要做以下事情?
Foo me;
但是我必须指定以下内容:
Foo<int> me;
C ++ 11引入了默认的模板参数,现在他们难以理解我的完整理解。
你必须做:
Foo<> me;
模板参数必须存在,但您可以将它们留空。
把它看作是一个带有一个默认参数的函数foo
。 expression式foo
不会调用它,但是foo()
会。 参数语法必须仍然存在。 这是一致的。
您可以使用以下内容:
Foo<> me;
有int
是你的模板参数。 angular括号是必要的,不能省略。
你不能这样做,但你可以这样做
typedef Foo<> Fooo;
然后呢
Fooo me;