Как бросить bool в BOOL?
Вопрос
Безопасен ли я приведения C ++ bool в Windows API BOOL с помощью этой конструкции
bool mybool = true;
BOOL apiboolean = mybool ? TRUE : FALSE;
Я бы предположил, что это да, потому что я не вижу каких-либо очевидных проблем, но я хотел воспользоваться моментом, чтобы спросить только потому, что это может быть более тонким, чем кажется. Р>
Спасибо Диме за (мягко) указание на мою небрежность так, как я изначально сформулировал вопрос.
Решение
Вы имеете в виду
bool b;
...
BOOL apiboolean = b ? TRUE : FALSE;
Если так, то да, это будет работать.
Другие советы
Да, это будет работать, но
bool b;
...
BOOL apiboolean = (BOOL) b;
должен работать так же хорошо, как и наоборот:
bool bb = (bool) apiboolean;
Visual Studio 2005 просто примет:
bool b = true;
BOOL apiboolean = b;
не требуется приведение .
Обратите внимание, что наоборот BOOL-> bool не просто работает так.
Не связан с StackOverflow