Entries from 2011-01-01 to 1 year

COMFRK 無料です

例えば Win32 Crypt API の CryptProtectData なんですけど、 DATA_BLOB output; ::CryptProtectData(&input, desc, NULL, NULL, NULL, 0, &output); shared_ptr<BYTE> ptr(output.pbData, ::LocalFree); カスタムデリーターを使えば、オブジェクトをうっかり開放</byte>…

C++03 + boost で C++0x の async

適当なワードで検索するとhttps://svn.boost.org/trac/boost/ticket/4710とかがひっかかると思うんですが、このコードは動きません。unique_future の寿命延びたりしないのでダメです。 ということで shared_future 返すようにしましょう。 #include <boost/thread.hpp> #inclu</boost/thread.hpp>…

F# はじめました

.Net が使える ocaml として有名な F# をちょっと触っています。 全然 ocaml と違いました。とりあえずハローワールド [<EnryPoint>] let main _ = printfn "Hello, world!";; エントリーポイント属性必要とかモジュールの最後の関数じゃないとダメとか面倒くさい。あな</enrypoint>…

猫でも杓子でもわかる Functor in C++0x

関手というのがどうもよくわからず。 ということなので、釣り記事を書こうと思います。 Haskell とか使ってる人って、これぐらい全部わかってるイメージがありますし、矢張り釣り針は大きいほうがいいので、C++ で説明してみようと思います。C++ の関数型表…

OUnit で OCaml コードの単体テストを書く

OUnit という単体テストフレームワークを使ってみます。XXXUnit と「大体あってる」二項関係をもつらしいです。

null 文字で分割する

あまりないと思いますが MULTI_SZ と格闘する時とかは null 文字で文字列を分割したい、ということがあるかもしれません。 一々 std::find 使って書くのは面倒なので、boost が使えるなら boost::algorithm::split を使っておきましょう。 しかし何も考えず…