gpt4 book ai didi

给定模板类的 C++ 类模板特化

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:50:31 29 4
gpt4 key购买 nike

我尝试实现一个模板类,并希望将其限制为专门用于某个给定的模板类。例如,在下面的代码中,我想定义模板类 CTest只能专门用于 std::vector<T>对于一些模板参数 T .对于其他模板参数,类应该是未定义的。如何实现模板类?

//   the interface should be something like following
//template <typename std::vector<T> >
//class CTest<std::vector<T> >;

int main(int argc, char* argv[])
{
CTest<std::vector<int> > t1; // successful
CTest<std::vector<string> > t1; // successful
CTest<int> t2; // compile error
return 0;
}

最佳答案

保留主模板未定义,仅部分特化您想要接纳的类型:

template <typename> class CTest;  // undefined


#include <vector>

template <typename T, typename Alloc>
class CTest<std::vector<T, Alloc>>
{
// ... your template here ...
};

关于给定模板类的 C++ 类模板特化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16633487/

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