2015-01-01から1年間の記事一覧

文字列と相互変換できる列挙型(enum)

stringとenumを双方向で変換できてかつPODなのが欲しくなったので書きました。内部の変換テーブルにはboost::bimapを使っています。特徴としては 双方向に変換できる 実行時 POD型 boost::bimapなので速い(後述) などです。 使用例 ENUM_UTILの実装は(長…

GCCのOpenMP実装(libgomp)のライセンス

最近gccでOpenMPを使っていて、ふとライセンスが気になったので調べてみました。ただし私は法律の専門家ではないので、正確な情報はライセンスの原文を見て判断してください。そもそも、gccでC++のコードをコンパイルすると、OpenMPとは関係なくlibstdc++やl…

初めてOpenMPを使ってみて気づいたこと

最近、あるプログラムを並列化して速度を上げるためにOpenMPを使っています。ネット上で検索するとOpenMPの入門記事はあっても実際に使ってみたよ、というのは多くないようなのでそのときに気づいたことなどを書いてみました。 OpenMPと他の並列化技術との比…

boost::logはmutable_constantをshallowコピーする

boost::logのloggerとそれに紐付いたmutable_constantをコピーしようとしてハマったのでメモ。 deepコピーがしたかったのだけど、結果はタイトル通りshallowコピーだった。ドキュメントにもよく読んだら書いてあった。 The shared pimpl design comes signif…