在C ++中定义模板类的默认实现

时间:2014-11-10 12:54:09

标签: c++ templates default

我知道可以为模板参数定义默认值:

template<int N = 10> struct Foo {};

您可以像Foo<>这样使用此功能,但我希望能够只编写Foo

我尝试了以下方法,但它不起作用(抛出编译器异常):

struct Foo : Foo<10> {};

这在C ++中是否可行?

1 个答案:

答案 0 :(得分:1)

你不能直接,但由于typedef,即

,可以取得一些成果
template<int N = 10> struct Foo{};

typedef Foo<> DefaultFoo;//Or whatever name that fits, just not 'Foo'

int main() {
    DefaultFoo myFoo;
    return 0;
}