所以我在模板的参数中需要类似OR运算符的东西, 例如我想做以下事情:
template <typename T, typename F,
typename = std::enable_if<
!std::is_same<T, Node>::value> or !std::is_same<F, Node>::value>>
换句话说,当T
和F
模板类之一不是Node
时,我需要存在该函数。
但目前这给我编译错误。
PS:我已经对原始问题进行了编辑,以使其更加清晰。
答案 0 :(得分:4)
您可以使用std::disjunction
std::enable_if<std::disjunction<a, b>::value>
但是,如评论中所述,a
和b
必须为constexpr
,而不是仅在运行时已知的值。
答案 1 :(得分:4)