2008年4月21日月曜日

svn+sshの注意点

svn+sshでアクセスする場合ユーザー定義のPATHは適用できない。

svn+sshでアクセスする場合はログインシェルすら起動されないため.bash_profile等の設定も有効にならない。

→subversionが指定する独自のPATHに含まれていなければならない。/usr/bin等は無理なので$HOME/binにリンクを貼る。

swap技法

C++ STL vector, stringのswap技法は重要。
Effective STL P.76 「余分な容量を取り除くにはswap技法を使おう」

vector< int>().swap(vec);
string().swap(str);


string()で無名のstringオブジェクトを作成してそれとのswapを行う。
この時のコピーコンストラクタは最小限のメモリしか割り当てないため、余分なcapacityを削減できる。
この最小値は実装による。

2008年4月13日日曜日

boostのunit_testがコンパイルできない。


×g++ -lboost_unit_test_framework -static example.cpp
○g++ example.cpp -lboost_unit_test_framework -static



こんな感じ。(ただし< とboost/test〜の間に空白を入れないこと)

#define BOOST_TEST_MAIN
#include < boost/test/unit_test.hpp>

BOOST_AUTO_TEST_CASE( test1 )
{

// テスト開始
BOOST_CHECK_EQUAL( 0, 1 );

}