タグ

ブックマーク / blog.cryolite.net (2)

  • C++0x Memory Model 第0回 - メモリモデルとは何か

    私は,スカートを履いた女の子に,スカートを履いたままぱんつを脱いで,脱ぎ終わったら右手を挙げるようにと,そう命令した.私は,その子が右手を挙げたのを確かに見た.だが,その子のスカートをめくってみたらぱんつはまだそこにあったのだ! - http://twitter.com/Cryolite/status/8455287843 より一部改変 これは C++ advent calendar の参加記事です。 ブログエントリは,以降のブログエントリと合わせて, C++0x のメモリモデルに関する規則を具体的な例や意味付けを交えた形で説明していくことを目的としています. 1998年に制定され,2003年に改訂された現行の C++ プログラミング言語標準規格 (以下, C++03) においては,プログラム中にただ1つの実行スレッドしか存在しない場合の規定しか記述されていませんでした*1.しかし, C

    C++0x Memory Model 第0回 - メモリモデルとは何か
  • 2004-05-29

    ここ2日ほど考えていたis_sortedですが,ようやく結論が出ました.ですがその結論の前に,多分多くの人にとっては全然面白くないであろうことを延々議論します. 結論は今日のblogの一番最後にありますので,結論だけ見たい人はid:Cryolite:20040529#p5へ飛んでください. まず最初に「値が等しいということ(Equality)」という概念について今一度確認してもらいます.C++(に限らず多くのprogramming言語)で普通"=="(及び"!=")で表される関係です. int a = 1; int b = 1; int c = 2; assert( a == b ); // `a' is equal to `b' assert( a != c ); // `a' is not equal to `c' 上の例では,aとbはequalである,と言えます. 何のことは無い「値

    2004-05-29
  • 1