タグ

c++とunreadに関するnitoyonのブックマーク (5)

  • 和訳:Rvalue References: C++0x Features in VC10, Part 2 - ntnekの日記

    Stephan T. Lavavej のRvalue References: C++0x Features in VC10, Part 2の適当な訳です。左辺値と右辺値、無駄なテンポラリが生成される問題、新たな参照「右辺値参照」の特徴と使い方、ムーブセマンティクスの意味と使い方、完全転送パターンの書き方、それらを可能にする仕組みと、これに関する C++0x の新たな文法ルールについて書かれています。 特に前半は、この手の記事としてはこれまでで一番分かりやすく丁寧に解説されていると思います。正直よく分かっていなかったんですけど、これを読んでだいぶスッキリしました。 で、ムーブセマンティクスによるテンポラリの除去が日用品のように使えるようになれば、LinusLinux カーネル開発者たちが「C++なんてクソ言語は使えねぇ!」と主張する(正当な)理由の一つを崩すことができますね。これを機会

    和訳:Rvalue References: C++0x Features in VC10, Part 2 - ntnekの日記
  • C++でMaybeモナド - Faith and Brave - C++で遊ぼう

    今日 id:uskz に会ったときに「C++でもMaybeモナドできますよ」って言われたので調べたらこんなのあった Maybe monad in C++ #include <boost/variant.hpp> class Nothing {}; template <class T> class Just { public: T val; Just(T x) : val(x) {} }; template<class T, class F> boost::variant<Nothing, Just<T> > operator>>=(boost::variant<Nothing, Just<T> > x, F f) { return (boost::get<Nothing>(&x)==NULL) ? f(boost::get<Just<T> >(x).val) : Nothing(); }

    C++でMaybeモナド - Faith and Brave - C++で遊ぼう
    nitoyon
    nitoyon 2008/12/05
    テンプレートでモナド。まだ理解してない。
  • ガベージコレクションの実装法と評価

    1.はじめに プログラミング言語とはシステム化する対象物を抽象化し、コンピュータで処理可能なコードを記述するために用いる人工言語である。プログラミング言語はコンピュータの機械語と一対一の対応をもったアセンブラから始まり、コンパイラを用いて機械語に翻訳することを前提としたコンパイラ言語、インタプリタと呼ばれるプログラムがソースコードを解釈し実行するスクリプト言語と、記述できる抽象度を高める方向へと進化してきた。 プログラミング言語はその存在理由から、より抽象度の高い記述が行えること、すばやい開発を行える事が求められる。抽象度の高い記述とは、プログラムがどういう処理を行うか(HOW)ではなく何の処理を行うか(WHAT)を記述しやすい構文、機能を持っていることを、すばやい開発とは記述性の高さ、コードの密度の高さ、バグの発生しにくい構文、機能を持っていることをさす。 この抽象度の高い記述、すばやい

    nitoyon
    nitoyon 2008/06/26
    gc。未読。
  • Kazuho@Cybozu Labs: なんとなくリフレクション in C

    nitoyon
    nitoyon 2008/06/25
    C++でリフレクションを実現。まだソース読んでない。
  • 1