2005-12-01から1ヶ月間の記事一覧

さよならlocale

世界で二人しか使っていないcpp_to_hatenaを更新しました ついでに一年間のいろんなコードをまとめておきました libs/biscuit/exampleフォルダにあります・・・ダウンロード 使えるファイルをUTF8のみにしました (英語だけならそのままでOK) MinGWでも日本語…

Const reference vs Copy

C++

当然答えは分からず 参照 参照

ADL Barrier

名前空間を限定しないで関数を呼び出すと、ADLが引き起こされて名前が衝突する可能性がある これは呼び出した側のバグであるが、標準ライブラリにもある GCCでは関数名とクラス名も衝突する・・・参照 完全な安全のためには、型は自分専用の名前空間にいなけ…

コンパイルタイム・ポリモーフィズム再び

Boost.Foreachが見せてくれた・・・参照 ADLのための関数はどうせフルネームなのだからグローバル名前空間を使えばいいということだ Boost.Foreachではenumを使っているが移植性の問題かもしれない 以下、eVC4, VC7, VC8, GCC3.4.4で動作確認 []#include[] []<string></string>…

使用されていない変数への警告を避ける方法

分からなかった boost::ignore_unused_variable_warningというのがあるが、使っていいのか不明 x;も警告の対象になっている・・・参照 Comeauだと(void)x;でも警告がでる void型へのキャストについて・・・参照 コンパイラによってまちまちのようだ というわ…

Use ATL7/WTL under VCExpress

Visual C++ 2005 Express Editionで.NET 2003のSDKやATL7を使えるようだ・・・ATL3の場合 しかし_ATL_MIN_CRTを使えるようにする方法は分からず エラーが出たら template<>をコメントアウトする・・・参照 基底クラスのテンプレート引数として自分自身を渡す…

テンプレート引数を明示した関数の呼び出し

以下のコードがあいまいエラーになるのは正しいらしい(どうしてだろう) 明示的テンプレート引数の必要な転送関数ではBoost.EnableIfが必要になる 型だけを関数に渡すときは、boost::typeなどを使った方がいいかもしれない []template[][]< [][]class[] []Ex[…