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

发布于 2024-09-06 19:58:16 字数 539 浏览 8 评论 0原文

我希望通过使用 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;
};

I'm looking to help users of some of my templated code by using BOOST_STATIC_ASSERT to let them know that they've used an incompatible type with a simpler compile error message than the monster than is currently produced with an incompatible type.

The example is a bit too complex to reproduce here, but hopefully this will capture the essence of what I want:

My question is how to format that last line, a "template template"?

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;
};

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

鸠魁 2024-09-13 19:58:16

将代码更改为

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

Change the code to

template <typename P1, int P2, typename P3> 
struct is_interesting_type<InterestingType<P1, P2, P3> >{
 static const bool value = true;
};
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文