Ответ 1
Visual Studio 2012 не поддерживает явные операторы преобразования, см. Функции С++ 11 в Visual С++ 11.
В этих статьях рассказывается о безопасной идиоме bool:
Я получаю Ошибка компилятора C2071, когда я пытаюсь реализовать explicit operator bool
:
class C
{
public:
explicit operator bool() const
{
return !!*this;
}
};
Почему? Как я могу решить эту проблему?
Я использую Visual Studio 2012 RC.
Visual Studio 2012 не поддерживает явные операторы преобразования, см. Функции С++ 11 в Visual С++ 11.
В этих статьях рассказывается о безопасной идиоме bool:
Если вы посмотрите на список функций в Visual Studio 2010, вы увидите, что это не доступная функция. Взгляд на Что нового для Visual С++ в Visual Studio 2012 показывает, что это еще не добавлено.