c++ - 静态断言添加操作是否可用

标签 c++ templates compile-time static-assert

我正在尝试创建一个静态断言来检查类型 A 是否可以添加到类型 B。有没有办法在编译时检查模板类型 A 是否可以添加到模板类型 B? A 和 B 真的可以是任何东西。

最佳答案

is_detected ,你可以这样做:

template <typename LHS, typename RHS>
using sum_t = decltype(std::declval<LHS>() + std::declval<RHS>());

template <typename LHS, typename RHS> 
using has_sum = is_detected<sum_t, LHS, RHS>;

关于c++ - 静态断言添加操作是否可用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44893918/

相关文章:

c++ - 按下按钮时如何选择 Qtablewidget 中的所有行?

C++:尝试通过组合和帕斯卡三角来理解 constexpr

c++ - 需要跟踪 opencv Mats 的类型

c++ - 使用CRTP和Google测试框架的库API

c++ - 在渲染纹理上绘制时出现问题。 (OpengL 3.3)

C++ 缓冲文本并有条件地将部分写入文本文件的有效方法

c++ - 是否有一种简单的方法可以从正常的 win32 C++ 代码向 Application Insights 提供数据?

c++ - 关于常量表达式的困惑

c++ - 编译时检查所有数组值是否已填充

c# - 在编译时确保互斥接口(interface)?