boolean_cast

  • BOOLとboolを変換します・・・ダウンロード
  • BOOLとboolの暗黙の変換は安全ですが警告がでます
  • それを消そうとして return ::SomeAPI() == TRUE; とするのは危険です
    • 成功の値としてTRUE(1)ではなく「0ではない」値を返すAPIがあるから
    • static_castは意味が多すぎると思います(おそらくboost::numeric_castも)
  • VC7.1の場合、auto_booleanが使えます


[]// HWND[]
[]inline[] []bool[] []is_valid[][]([][]HWND[] []hWnd[][])[]
[]{[]
[]if[][] ([][]hWnd[][] == [][]NULL[][])[]
[]return[] []false[][];[]

[]return[] []boolean_cast[][]<[][]bool[][]>(::[][]IsWindow[][]([][]hWnd[][]));[]
[]}[]

[]// HMENU[]
[]inline[] []bool[] []is_valid[][]([][]HMENU[] []hMenu[][])[]
[]{[]
[]if[][] ([][]hMenu[][] == [][]NULL[][])[]
[]return[] []false[][];[]

[]return[] []auto_boolean[][](::[][]IsMenu[][]([][]hMenu[][]));[]
[]}[]