2017-06-12 71 views
1

我有這個類:類型/值不匹配

template<typename Bar, template<typename Bar> class Container> 
class Foo 
{ 
    Container<Bar> myContainerBar; 
}; 

和這個子類:

class FooSpecialization : public Foo<std::string,std::vector> 
{ 
}; 

我得到以下錯誤在第二的第一行代碼段以上(在子類):在自變量2中的模板的參數列表 「templat

類型/值不匹配E級集裝箱>類Foo」

我也試過

class FooSpecialization : public Foo<std::string,std::vector<std::string>> 

沒有成功。哪裏不對?我找不到解決這個問題的SO問題。

+3

'的std :: VECTOR'有不止一個模板參數。 – Jarod42

+1

順便說一句,'FooSpecialization'不是專業化的。 – Jarod42

回答

5

std::vector有多個模板參數(Allocator)。

你可以解決它這種方式,例如

template<typename Bar, template<typename ...> class Container> 
class Foo 
{ 
    Container<Bar> myContainerBar; 
}; 


class FooSpecialization : public Foo<std::string, std::vector> 
{ 
};