Re[7]: VS2010: unique_ptr implicitly convertible to bool
От: _nn_ www.nemerleweb.com
Дата: 10.11.11 07:00
Оценка: 6 (1)
Здравствуйте, uzhas, Вы писали:

Ясно.
Masterkent уже об этом написал.
Safe-bool idiom != explicit operator bool.

Вариант 1.
class My
{
    typedef int My::*SafeBoolType;
    int f;

public:
    operator SafeBoolType() { return &My::f; }
};

int _tmain(int argc, _TCHAR* argv[])
{
    My a;
    bool c = a; // OK
    return 0;
}


Вариант 2
class My2
{
    typedef void (My2::*SafeBoolType)();
    void F() {}

public:
    operator SafeBoolType() { return &My2::F; }
};

int _tmain(int argc, _TCHAR* argv[])
{
    My2 a;
    bool c = a; // OK
    return 0;
}
http://rsdn.nemerleweb.com
http://nemerleweb.com
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.