タグ

Boostとgccに関するt-murachiのブックマーク (2)

  • Boost.Context でジェネレータを作る - iorate's blog

    知らないうちに Boost.Context が trunk 入りしていたので,それを使って Python のジェネレータのようなものを作る CRTP クラスを書いてみました. generator.hpp メンバ関数 generate を実装するとジェネレータを作り上げてくれます.ジェネレータは,遅延評価される range として振る舞います. 以下の例はフィボナッチ数列を返すジェネレータを作るものです. #include <iostream> #include <tuple> #include "generator.hpp" struct fib : iorate::generator<fib, int> { int max; explicit fib(int max) : max(max) {} template <class Context> void generate(Context

    Boost.Context でジェネレータを作る - iorate's blog
    t-murachi
    t-murachi 2012/03/13
    これは素敵。 / ていうか gcc ってもう 4.8 が出てたのね…
  • はらぺこ日誌» ブログアーカイブ » char32_t だと regex が使えない

    C++0x では UCS に対応し、専用の型やリテラルの記法が導入されました。その関係で、以下の点について調査を行っていました。 C++0x で UCS を UTF-32 として扱う型 char32_t, u32string およびリテラル U"..." と、 libiconv の UCS-4-INTERNAL との間に互換性はあるか。 C++0x で新たに追加された正規表現ライブラリ <regex> は利用可能か。 <regex> が利用できない場合、 Boost.Regex を用いて UTF-32 文字列を処理することは可能か。 これらの調査は、すべて otoco のコアデータを扱うプログラム内で内部文字列に UTF-32 を採用することを前提としたものでした。 結論から言うと、内部文字列に UTF-32 を採用することは、現時点では諦めざるを得ない、ということになりました。\(^O^

    t-murachi
    t-murachi 2010/09/22
    C++ で UTF-32 が内部文字列として扱える時代は、もう少し先の話のようです… (泣
  • 1