явная ошибка оператора bool

Я получаюОшибка компилятора C2071 когда я пытаюсь реализоватьexplicit operator bool:

class C
{
public:

    explicit operator bool() const
    {
        return !!*this;
    }
};

Зачем? Как я могу решить эту проблему?
Я использую Visual Studio 2012 RC.

 Robᵩ06 июл. 2012 г., 17:28
В g ++ 4.7 это производитStack Overflow.
 R. Martinho Fernandes06 июл. 2012 г., 17:24
Насколько я знаю, Visual Studio не поддерживает эту функцию. Я думаю, что вы застряли в идиоме безопасного бура ... Черт.
 R. Martinho Fernandes06 июл. 2012 г., 17:30
@Agent_L это было бы странноreturn true;, Я подозреваю, что ФП реализовал это таким образом, потому чтоoperator! уже перегружен требуемой семантикой, но просто не включен в пример кода.
 Xeo06 июл. 2012 г., 17:41
@Agent_L: нет, компиляторы делаютnot определить это очень точно ... или, на самом деле, я думаю, что они делают. Они определяют это как «пошалите, играйте со взрывчаткой, я не сделаю дерьмо, чтобы помочь вам».
 PlasmaHH06 июл. 2012 г., 17:27
странный способ сделать бесконечные циклы ...

Ответы на вопрос(2)

Решение Вопроса
 29 дек. 2012 г., 22:36
В Visual Studio 2012 я установил ноябрьскую CTP:aka.ms/vc-ctp Этот пакет обновления компилятора должен был добавить (среди других функций C ++ 11) явный оператор преобразования. Но синтаксис все еще не работает. Я что-то пропустил?

функции в Visual Studio 2010 Вы можете видеть, что это была недоступная функция. Взгляд наЧто нового в Visual C ++ в Visual Studio 2012 показывает, что это не было добавлено.

Ваш ответ на вопрос