Ответ 1
Если вы выглядите глупо, просто !expression
вместо expression
в параметре bool template в enable_if
, чтобы он вел себя как a disable_if
? Конечно, если эта идея работает, вы можете просто расширить ее, чтобы написать класс с disable_if
-подобным поведением?
Хорошо, я думаю, вы могли бы реализовать disable_if
следующим образом:
template <bool B, typename T = void>
struct disable_if {
typedef T type;
};
template <typename T>
struct disable_if<true,T> {
};