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