Где disable_if в C++ 0x?

Повышение имеет обоих enable_if и disable_if, но C++ 0x, кажется, скучает по последнему. Почему это было не учтено? Есть ли средства метапрограммирования в C++ 0x, которые позволяют мне создавать disable_if с точки зрения enable_if?


О, я просто заметил это std::enable_if в основном boost::enable_if_c, и это там не такая вещь как boost::enable_if в C++ 0x.

20
задан fredoverflow 24 June 2010 в 15:03
поделиться

1 ответ

Рискуя показаться глупым, просто используйте ! Выражение вместо выражение в параметре шаблона bool в enable_if , чтобы заставить его вести себя как 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> {
};
18
ответ дан 30 November 2019 в 01:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: