Вопрос

Безопасен ли я приведения 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 не просто работает так.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top