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