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。它確實有道理。謝謝。 –