1
我是真的惭愧地问这个问题,但看起来我对模板一无所知。完全专用模板中构造函数的线外定义
所以我有这样的片段:
template <typename> class foo;
class bar;
template <> class foo <bar>
{
public:
foo();
};
template <> foo <bar> :: foo()
{
}
哪里,好,我只是有一个模板类foo
,一类bar
,专业化foo <bar>
有一个构造函数,我想定义构造出来的线。
尽管这个例子可能看起来很微不足道,但我无法得到它,我总是得到No function template matches function template specialization 'foo'
。
如果我添加一个虚拟参数,以便模板不是完全专用的(例如template <bool dummy> foo <bar, dummy> :: foo()
),它可以很好地工作。我错过了什么?
'模板<> FOO :: foo的()' - >'FOO :: foo的()'。你并没有专门化任何东西,你正在定义一个先前声明的实体。 –
StoryTeller
D'oh。它确实有道理。谢谢。 –