首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C++在编译时确定对一个或多个类型的特定操作是否有效

C++在编译时确定对一个或多个类型的特定操作是否有效
EN

Stack Overflow用户
提问于 2021-04-28 09:33:28
回答 1查看 49关注 0票数 0

在C++中,对于C++11 on up,我希望能够在编译时确定一个或多个类型上的特定操作是否有效,布尔值'true‘表示操作有效,布尔值'false’表示操作无效。

在Boost.TypeTraits库中,有一些操作作为库的一部分,称为“操作符类型特征”,它可以为我确定非常大范围的操作符类型。我不是在质疑这段代码的价值,因为它非常棒。它是为在C++03级别工作而编写的,但确实有一些限制。作为对特定级别C++的C++增强的一部分,某些C++ 是否具有编译时对这种确定的支持?例如,给定类型T和类型U,我想创建一个编译时问题,即A+B是否是有效操作。我不能说decltype(T() + U()),因为如果这是无效的,我将得到一个编译时错误。相反,我想写的代码基本上是“如果decltype(T() + U())”是有效的,做这个,否则做那个。这可能吗?

EN

回答 1

Stack Overflow用户

发布于 2021-04-28 09:45:45

你应该看看void_t,它是在C++14中引入的,但是,它没有什么不能在C++11中工作的地方。

看看沃尔特·布朗的excellent talk about ,大约从29:00开始(但你应该看整个演示文稿)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67292638

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档