Эй, ребята, я вывел свой класс из класса идиомы безопасного булла C ++ с этой страницы: Идиома безопасного була Бьорна Карлссона
class Element : public safe_bool<>
{
public:
bool Exists() const;
// boolean_test() is a safe_bool method
bool boolean_test() const { return Exists(); };
};
Когда я пытался его использоватьв выражении if, как показано ниже
Element ele;
...
if(ele)
Я получил ошибку C2451: условное выражение типа 'Элемент' недопустимо .Если я пытаюсь привести его к типу bool, как показано ниже, я получаю эту ошибку
Element ele;
...
if((bool)ele)
ошибка C2440: «приведение типа»: невозможно преобразовать «Элемент» в «bool»
Это первый раз, когда я использую безопасный bool idiom, я не уверен, что это запрещено или ошибка в Visual C ++ 10. Есть комментарии?Заранее спасибо!