2008-10-01から1ヶ月間の記事一覧

Xerces3.0.0をC++Builder 2009でビルドする方法

Xerces3.0.0が動くらしいので、試してみた。手順は以下の通り。 インストール先のprojects\Win32\BCB6\MakeBuildDirs.batを実行。 インストール先のprojects\Win32\BCB6\Xerces-allにある、XercesLib.bprをC++Builder2009で読み込む。 プロジェクトを変換し…

Singletonパターンとマルチスレッド

マルチスレッドを考慮してSingletonを実装するとき、アクセスする度にTCriticalSectionを使ってオブジェクトの中身を保護してやらないといけないのかな・・・。 class CSingleton { private: CSingleton(){} CSingleton(const CSingleton& obj) {} virtual ~…

C++Builder 2009用ユニット参照関係修復スクリプト

フォームを使用していないユニット*1をコードエディタで表示すると、コードエディタ下側のタブに「コード」と「履歴」しか表示されない場合があるので、それを解消するRubyスクリプト。 require "rexml/document" doc = REXML::Document.new($<) doc.element…

正規表現機能別逆引きリファレンス(改訂版)

自分用に作った奴だけど、頼りにしてくれている人がいるので、微調整しました。 本当はJavaとか.NET FrameworkとかemacsとかPHPなども入れなければならないけど、自分自身が使っていないので、まとめる余裕がありまっせん!! それよりも、12月頭の[検閲済…

C++Builder2009の新機能 その5 (std::unique_ptr編)

CodeGearの高橋さんから、C++0xのunique_ptrが使えるということで試してみた。今までのauto_ptrだとこんな感じ。 #include <memory> // 中略 void __fastcall TForm1::Button1Click(TObject *Sender) { std::auto_ptr<TStringBuilder> pBuffer(new TStringBuilder()); pBuffer->Appen</tstringbuilder></memory>…

C++Builder2009の新機能 その4(TStringBuilder&boostのスマートポインタ編)

VCLに追加されたTStringBuilderを試してみたけど、Appendメソッドに文字列リテラルを渡すと微妙にやばいかも。 void __fastcall TForm1::Button1Click(TObject *Sender) { boost::scoped_ptr<TStringBuilder> pBuffer(new TStringBuilder()); pBuffer->Append("123"); // TSt</tstringbuilder>…

自分用覚え書き:テンプレートと文字列リテラルの罠のようなもの

C++ Templates: The Complete Guideの57ページにこんなコードがあった。 //--------------------------------------------------------------------------- #pragma hdrstop #include <tchar.h> #include <string> //-------------------------------------------------------</string></tchar.h>…