- 135 名前:デフォルトの名無しさん [2009/03/20(金) 19:56:39 ]
- 引数オーバーロードによって戻り値を変えるプログラムが
g++ (1)3.3.6と(2)4.2.4で挙動が違います。 実行後 main戻り値が (1) => 2 / (2) => 1 となります。 NS1をNS2に書き換えると両方とも2が戻ります。 どっちの挙動が標準規格的には正しいですか? //以下そのプログラム #include <stdio.h> namespace NS1 { struct HUGA {}; } namespace NS2 { int get(...) { return 1; } template <typename T> int f() { NS1::HUGA huga; return get(&huga); } int get(NS1::HUGA * ) { return 2; } } int main() { return NS2::f<int>(); }
|

|