2008-11-29から1日間の記事一覧

メタ関数1

C++

コンパイル時に、型・定数を引数として受け取り、それを加工して型・定数を返すclass template。typedef・enum・static constで戻り値を返す。 基本形は以下の通り。 //argを引数として受け取り、そのままtypeとして返すメタ関数 template< typename arg > s…

traits

C++

特性。テンプレート引数に渡された型、定数によって動作を切り替える。 例えば、shared_ptrでvoidを渡すと、 shared_ptr< void > p; operator*()の戻り値の型がvoid&になるのでコンパイルエラーになってしまいます。 template < typename T > class shared_p…

xbox360の修理

先週故障したxbox360は実質1週間も使ってないので、初期不良として交換できるか聞いてみましたが、やっぱりダメでした。。。 買ったのが9月だったので、せめて9月中であれば交換できたとか。 一緒に買ったインフィニット アンディスカバリーを2〜3日プレイ…

shared_ptrの実装7

C++

deleter 前回のまとめ(shared_ptrの実装6 - while( c++ );)でいきなり出てきたdeleterによる削除について。例えば、あるクラスの生成と破棄を行うライブラリがある時、 hoge.h class IHoge{ ... }; IHoge* Create(); void Delete( Hoge* p ); hoge.cpp cla…