模板化类型的 C++ 模板特化

标签 c++ templates traits

我希望通过使用 BOOST_STATIC_ASSERT 来帮助使用我的一些模板代码的用户,让他们知道他们使用了一个不兼容的类型,其编译错误消息比当前使用不兼容类型生成的怪物更简单。

该示例有点太复杂,无法在此处重现,但希望这能捕获我想要的本质:

我的问题是如何格式化最后一行“模板模板”?

template <typename P1, int P2, typename P3> 
class InterestingType

{
}

template<typename T>
struct is_interesting_type{
 static const bool value = false;
};

template<template<typename,int,typename> typename InterestingType> //No idea how to format this..
struct is_interesting_type{
 static const bool value = true;
};

最佳答案

将代码改为

template <typename P1, int P2, typename P3> 
struct is_interesting_type<InterestingType<P1, P2, P3> >{
 static const bool value = true;
};

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

相关文章:

c++ - 过滤 1bpp 图像

c++ - 为什么 C++ 中的这个 lambda 包含每个引用?

C++模板和重载运算符

php - 如何获取内部带有命名空间的特征名称?

c++ - 通过引用 : derived class' override gets called 调用虚函数

C++ 显式返回类型模板特化

c++ - 成员变量的通用声明

generics - 如何使用通用方法参数创建可散列特征对象/特征对象?

generics - trait 不能做成一个对象

c++ - 一个指针,c++中的两个不同的类