VARIANT_BOOL を C++ bool に変換する最適な方法は? 質問する

VARIANT_BOOL を C++ bool に変換する最適な方法は? 質問する

COMを使用する場合、ブール値はwtypes.hで次のように宣言されているVARIANT_BOOLとして渡されます。短い定義済みの値もあります真実そして間違い:

#define VARIANT_TRUE ((VARIANT_BOOL)-1)
#define VARIANT_FALSE ((VARIANT_BOOL)0)

VARIANT_BOOL から C++ 型に変換する最適な方法はどれですかbool? 明らかなバリアントは次のとおりです。

  1. VARIANT_FALSEと比較する

  2. 単にboolにキャストする

他の方法は簡単に発明できます。

これを行う最良の方法はどれでしょうか。最も読みやすく、最も標準に準拠しており、偶発的なバグの発生が最も少なく、64 ビット プラットフォームへの移植で問題が発生する可能性が最も低い方法は何でしょうか。

ベストアンサー1

と比較してください。世の中には、 を期待する関数に誤って C++ bool 値 (整数値 1 にキャスト)VARIANT_FALSEを渡すバグのあるコードが多数あります。 と比較すると、正しい期待値が得られます。trueVARIANT_BOOLVARIANT_FALSE

おすすめ記事