C++
Visual C++ 2005でMessagePackとProtocol Buffersを試してみた。 MessagePack インストール http://msgpack.sourceforge.jp/ から最新版(3/10の時点ではmsgpack-0.4.2.tar.gz)をダウンロードし、適当な場所に展開する。 プロジェクトファイルは付属してな…
キャッシュのデータ構造について。「キャッシュのデータ構造 with Boost.MultiIndex」と「slist LRUMap」でできるっぽいので、それぞれでLRUSetを実装してみた。GetかAddするとキューの末尾に並び替えられるというもの。まずBoost.MultiIndexのほう。http://…
基底クラスのコンテナに派生クラスをつっこみたい。
各ライブラリに速度差があるのかどうか調べてみた。 とあるブログをソースとして、テキストの一致判定を行った。一部を削ってみて4パターンで実行した結果は以下の通り。ビルド環境はPentiumM 1.8GHz、Visual C++ 6.0 SP5。単位はmicrosec、sizeは被検索文字…
(有)ラング・エッジの正規表現ライブラリlei_jregexを試してみた。 SJISかEUCに対応している。初期化時の関数名はCOMライクとなっている。以下Regex.h。 class CRegex { void *m_regex; public: CRegex( const char *pszExpression ); ~CRegex(); bool Mat…
Tatsuo Baba氏のBREGEXPでもやってみた。Baba氏のライブラリにはVB5/6の頃にはお世話になった。手軽に色々やりたいときに便利である。 bregexp.lzhに含まれるstruct bregexpの宣言は古いようで、parap以下のメンバーが含まれていない。Linux版やwebに載って…
王道であるBoost.Regex(version 1.33.1)を使ってみた。 このCRegexの使い方は(1)と同じで、 CRegex Regex( "(abc)(def)ghi" ); int nResults = Regex.Match( "abcdefghijkl" );という感じ。以下Regex.hのソース。 #include class CRegex { // boost::reg_e…
PCRE(Perl Compatible Regular Expressions, http://www.pcre.org/)のラッパーも作ってみた。 PCREはC++ Builderに入っていたり、Cではメジャーなライブラリである。PCRE用のCRegexの使い方は(1)と同じで、 CRegex Regex( "(abc)(def)ghi" ); int nResults…
しばしばC++で正規表現検索の必要に迫られるので、少し試してみた。 (自分が)手軽に使えるように CRegex というラッパーを作成した。使い方は CRegex Regex( "(abc)(def)ghi" ); int nResults = Regex.Match( "abcdefghijkl" ); std::cout Regex.GetResult…
Fixes for Library Bugs in VC++ V5.0/V6.0(P.J.Plauger大先生の会社の修正情報; http://www.dinkumware.com/vc_fixes.html)の、VC6.0 SP6での状況。結果から言うと、とりあえず、 差し替え → deque、xstring、xtree パッチ → list、vector、strftime.c で…