При использовании COM-булевых значений должны быть переданы как VARIANT_BOOL, который объявлен в wtypes.h как короткий. Существуют также предопределенные значения для true и false:
#define VARIANT_TRUE ((VARIANT_BOOL)-1)
#define VARIANT_FALSE ((VARIANT_BOOL)0)
Каков наилучший способ преобразования из VARIANT_BOOL в С++ bool
типа? Очевидные варианты:
-
сравнить с VARIANT_FALSE
-
просто отбрасывать в bool
Другие способы можно легко придумать.
Каков наилучший способ сделать это - наиболее читаемый, самый стандартно-совместимый, наименее склонный к посадке на клонированных клоках и наименее подверженный проблемам с портированием на 64-битные платформы?