1

我创建了一个模板并给它一个默认类型:

template <typename T = unsigned>
class Network {
    // ...
}

但是,当我尝试实例化一个Network对象时

Network nw;

我收到一个错误:

app.cpp:60:9: error: missing template arguments before 'nw'

第 60 行是Network nw;. T如果我指定该类型应默认为unsigned未明确提及类型时,为什么我会丢失模板参数?

4

2 回答 2

8

它仍然是一个模板类型,所以它仍然需要尖括号:

Network<> nw;

恼人的?是的。

于 2013-02-22T02:05:40.690 回答
8

它仍然需要:

Network<> nw;

即使它是默认的,它仍然需要像模板一样被调用。

于 2013-02-22T02:05:42.840 回答