制作需要模板的模板

Making a template that requires a template

本文关键字:      更新时间:2023-10-16

我正在尝试制作一个只适用于其他模板化类的模板化类。

我的尝试看起来像:

template<typename T<K,V>, size_t COUNT>
class DoubleTemplate { ..... };

但是,在我尝试指定T<K,V>时,会出现编译器错误。

有没有一种好的方法可以要求typename只能是两个param上的模板?

您需要的是

 template <template<typename, typename> class T, size_t count> 
 class DoubleTemplate { ... };

示例:

#include <iostream>
#include <cstddef>
template <typename K, typename V>
class Foo {};
class Bar {};
template <template<typename, typename> class T, std::size_t COUNT>
class DoubleTemplate {}; // you need class T, not typename T, to be corrected in C++17
int main()
{
    DoubleTemplate<Foo, 10> dt;
    // DoubleTemplate<Bar, 20> dt2; //oops, Bar is not a 2-param template class
}
相关文章:
  • 没有找到相关文章