/ 最近 .rdf 追記 編集 設定 本棚

log[20090723] 釣られますた



20090723()

最終更: 2010-01-15T21:38+0900

[Ruby][C++] 釣られますた

C/C++ではもちろん0==falsetrueなわけです・・ もしかしてboolean型を整数型とキト比較しない仕様なんでしょうか?

この辺はC/C++も難しくて 本質的には 2==trueも本当は真なんですが偽になったりもします。

Rubyではif(0)trueト なのかっ Cと逆だな::レビログ

Rubyでビトフラグをチックするときは 0との比較を忘れてはいけない

if(flag & mask)
  # (意図に反して)必ず実行される
end
if(0 != flag & mask)
  # 期待通り
end

というのはさておき2==true に関して「本質的にはという言葉が胡散臭い「本質を表すコ(2!=false) == (true!=false)であって2==true は関係ないのでは? ==は真偽値を返す演算子ではあっても真偽値のみをオペラドにとる演算子ではないから2==true1==true-1==true までもが暗黙にそのように解釈されて真になったりしたらむしろ気持ち悪い。それは PHPの世界だ()

Cと逆だな

Rubyでは非0が偽だと言いたげですね


 @2009-11-06 まさしく偏見でした

Safe Bool (ja.wikibooks.org)という C++のイオムがあってつまり裏を返すと危険な Boolean変換が C++には存在するということだーめーて

C++09(予定)では explicitなコトラクタみたいに明示的なキトを必要とする変換を定義できるようになるらしい