C++

MessagePackとProtocol Buffersを試してみた

C++

Visual C++ 2005でMessagePackとProtocol Buffersを試してみた。 MessagePack インストール http://msgpack.sourceforge.jp/ から最新版(3/10の時点ではmsgpack-0.4.2.tar.gz)をダウンロードし、適当な場所に展開する。 プロジェクトファイルは付属してな…

LRUSet

C++

キャッシュのデータ構造について。「キャッシュのデータ構造 with Boost.MultiIndex」と「slist LRUMap」でできるっぽいので、それぞれでLRUSetを実装してみた。GetかAddするとキューの末尾に並び替えられるというもの。まずBoost.MultiIndexのほう。http://…

雑居房

C++

基底クラスのコンテナに派生クラスをつっこみたい。

C++で正規表現 (ベンチマーク)

各ライブラリに速度差があるのかどうか調べてみた。 とあるブログをソースとして、テキストの一致判定を行った。一部を削ってみて4パターンで実行した結果は以下の通り。ビルド環境はPentiumM 1.8GHz、Visual C++ 6.0 SP5。単位はmicrosec、sizeは被検索文字…

C++で正規表現 (5)

C++

(有)ラング・エッジの正規表現ライブラリlei_jregexを試してみた。 SJISかEUCに対応している。初期化時の関数名はCOMライクとなっている。以下Regex.h。 class CRegex { void *m_regex; public: CRegex( const char *pszExpression ); ~CRegex(); bool Mat…

C++で正規表現 (4)

C++

Tatsuo Baba氏のBREGEXPでもやってみた。Baba氏のライブラリにはVB5/6の頃にはお世話になった。手軽に色々やりたいときに便利である。 bregexp.lzhに含まれるstruct bregexpの宣言は古いようで、parap以下のメンバーが含まれていない。Linux版やwebに載って…

C++で正規表現 (3)

C++

王道である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…

C++で正規表現 (2)

C++

PCRE(Perl Compatible Regular Expressions, http://www.pcre.org/)のラッパーも作ってみた。 PCREはC++ Builderに入っていたり、Cではメジャーなライブラリである。PCRE用のCRegexの使い方は(1)と同じで、 CRegex Regex( "(abc)(def)ghi" ); int nResults…

C++で正規表現 (1)

C++

しばしばC++で正規表現検索の必要に迫られるので、少し試してみた。 (自分が)手軽に使えるように CRegex というラッパーを作成した。使い方は CRegex Regex( "(abc)(def)ghi" ); int nResults = Regex.Match( "abcdefghijkl" ); std::cout Regex.GetResult…

VC++6.0 fixes

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 で…