Boost имеет как enable_if
, так и disable_if
, но C++ 0x, похоже, отсутствует. Почему это было исключено? Существуют ли метапрограммы в C++ 0x, которые позволяют мне строить disable_if
с точки зрения enable_if
?Где disable_if в C++ 0x?
О, я только что заметил, что std::enable_if
в основном boost::enable_if_c
, и что не существует такого понятия, как boost::enable_if
в C++ 0x.
Да, я только что понял, 'enable_if' принимает' bool' вместо типа, поэтому отрицая условие тривиально. Тем не менее, это сделает код более читаемым, чтобы иметь 'disable_if'. – fredoverflow
Хорошо, я дал написание disable_if выстрела, в то время как я считаю, что это правильно, мои способности метапрограммирования немного отстают. – Jacob
Выглядит хорошо для меня (за исключением отсутствующей точки с запятой после 'typedef' в строке 3). Я бы, вероятно, изменил логику, т. Е. Создал пустую общую 'struct', а затем специализировал ее на' false', но это всего лишь вопрос мнения/стиля, а не корректности :) – fredoverflow