ошибка: неоднозначный "?" операция: второй операнд типа "TypesafeBool" может быть преобразован в третий операнд типа "bool" и наоборот TypesafeBool b = (1==1) ? f() : ложь;
class TypesafeBool
{
private:
bool m_bValue;
struct Bool_ {
int m_nValue;
};
typedef int Bool_::* bool_;
inline bool_ True() const { return &Bool_::m_nValue; }
inline bool_ False() const { return 0; }
public:
TypesafeBool( const bool bValue ) : m_bValue( bValue ){}
operator bool_() const { return m_bValue ? True() : False(); }
};
TypesafeBool f()
{
return TypesafeBool(true);
}
int main()
{
TypesafeBool b = (1==1) ? f() : false;
}
error: operands to ?: have different types 'TypesafeBool' and 'bool
- person Prasoon Saurav   schedule 20.08.2010