C++

C++ のキャストと void ポインタ

unsigned int uia[8]; unsigned char uca[8]; void test() { void* vp; unsigned int* uip; unsigned char* ucp; uip = uia; ucp = uca; vp = uia; // uip = vp; // Error! uip = static_cast<unsigned int*>(vp); vp = uca; // ucp = vp; // Error! ucp = static_cast<unsigned char*>(vp);</unsigned></unsigned>…

ある 1 つのクラスの複数のメンバを別々のコンパイル単位で定義できる

C++

また、C++ についてのメモです。 C++のリンケージとクラスは,ほぼ直交した概念です. たとえば,メンバ関数は,(アクセス制御の public/private いかんに関わらず) 複数のソースファイルに配置することができます. http://www.nces.is.nagoya-u.ac.jp/NEXC…

const キーワードの位置

C++

前にこんなメモを書いてたのを見つけた。下の2つは同じ。 const type var = val; type const var = val; 下の2つも同じ。この場合は、var が指示する先 (*var) が const になる。 const type * var = val; type const * var = val; 以下は、上の2つとは違う…

BOOST_AUTO_TEST_CASE

C++

を使うと、init_unit_test_suite を書く必要がなくなります。プリンスオブペルシャはずいぶん前に終わってるんですが、いまさら書いてみます。そんなわけで、前に書いた goban-test.cpp はこんなふうになります。 #include "goban.h" #define BOOST_TEST_MOD…

boost::unit_test_framework でユニットテスト

C++

ちょっと仕事で簡単な C++ コードとそのテストコードを作る必要ができたので、boost の unit_test_framework を試してみることにしました。 準備 最初に試した環境は Gentoo なので、emerge boost すれば一番楽チンなんですが、あとで別の環境に持っていく必…