对于你们许多人来说,我的问题可能看起来很奇怪,我真的很抱歉。
我记得,几年前我曾经管理过定义一个带有默认模板参数的类,以便语法
Foo<> f;
可以替换为
Foo f;
然而,我不记得我是怎么做到的。我认为Foo类是使用可变参数模板定义的,默认模板参数是一个整数值(SIZE),但我无法重现目标语法。
有人知道怎么做吗? 如果这只是一个梦,我真的很抱歉!
编辑:好吧,据我记忆所及,诀窍的基础是重新定义template<int SIZE=0>
class Foo;
使用一些可变参数模板。但我知道我的问题很奇怪,并且可能无法获得这样的语法...:)
答案 0 :(得分:1)
答案 1 :(得分:1)
一个不错的解决方案是为您键入一个别名。
template<std::size_t size = 0>
struct Foo {
// ...
};
using DefaultFoo = Foo<>;
虽然你不能拥有相同的名字......