タグ

2009年9月20日のブックマーク (2件)

  • Lua のコルーチンの使い方〜基本編〜 : torus solutions!

    Lua のコルーチンはとても便利ですが、意外とあんまり使われていないようなので、簡単な使い方をまとめてみたいと思います。 基 Lua コルーチンは、関数に対して「途中で抜けて、あとで戻る」ための機能を追加した物です。 coroutine.yield コルーチンの中心的な機能である「途中で抜ける」には coroutine.yield という関数を使います。 function ex1 () coroutine.yield "HELLO!" coroutine.yield "HELLO AGAIN!!" return "SEE YOU!" end こんな風に使うと、関数の途中で抜けてそのときに、返り値として "HELLO!" や "HELLO AGAIN!!" という文字列を返します。 ただし、ここで定義した ex1 という関数はこのままでは「ただの関数」なので、この yield は使えません

  • boost::iostreams で圧縮・復元(gzip) - やた@はてな日記

    C++ でデータの圧縮・復元をする場合,boost C++ library に便利な Filter があります.gzip -c や gzip -cd などで対応できないときには,検討する価値があると思います. Gzip Filters # リンクするときにライブラリ libboost_iostream... を指定する必要があります.また,zlib_compressor や bzip2_compressor も提供されています. #include <iostream> #include <boost/iostreams/filtering_streambuf.hpp> #include <boost/iostreams/filter/gzip.hpp> // 受け取ったデータを圧縮して出力ストリームに渡す. class Compressor { public: Compressor(std

    boost::iostreams で圧縮・復元(gzip) - やた@はてな日記