Если заголовок не имеет смысла, вот суть проблемы:Частичная специализация параметров шаблона шаблон с переменным числом параметров
template <template <class> class ContainerOf>
class Foo;
template <>
class Foo<boost::optional> // works!
{
// ...
};
// ERROR! std::vector takes two parameters
// T and Alloc.
template <>
class Foo<std::vector>
{
// ...
};
В Ессенции я хочу специализироваться для различных шаблонов, которые принимают параметр одного типа. Тем не менее, многие шаблоны в STL и других местах имеют другие параметры, такие как Allocators и Compare (например, std :: map). Меня это не волнует. Я хочу специализироваться на std :: vector с «дыркой», где T.
Мысли? Я чувствую, что мне нужны какие-то объекты-обертки или какое-то косвенное отношение для достижения этого - это также, вероятно, изменит способ создания экземпляров этих шаблонов.
является 'шаблон <имяТипа класс ContainerOf>' опечатка? –
да извините. исправит –
Я вижу, что вы пытаетесь сделать. И, если мое понимание правильное, я скажу вам, что самый простой способ - принять пару итераторов (диапазон), так как большинство функций/классов работают на C++. – edmz