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

时间:2017-07-03 21:12:43

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

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

1 个答案:

答案 0 :(得分:4)

使用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>;