gpt4 book ai didi

c++ - 模板模板参数的部分特化,具有不同数量的参数

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:09:19 26 4
gpt4 key购买 nike

如果标题没有意义,这里是问题的要点:

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 和其他地方的许多模板都有其他参数,例如分配器和比较操作(例如 std::map)。我不在乎那些。我想专门研究一个 std::vector,它有一个“洞”,其中 T 是。

想法?我觉得我需要某种包装器对象或某种间接方式来实现这一点——它也可能会改变用户实例化这些模板的方式。

最佳答案

在 C++11 中,您可以使用可变参数:

template <template<typename T, typename...> class ContainerOf> 
class Foo;

关于c++ - 模板模板参数的部分特化,具有不同数量的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30017320/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com