47 :
デフォルトの名無しさん:
ちょっとした質問です。
namespace A
{
struct X {};
void *operator new (size_t n, X&) { return 0; }
void f()
{
X c;
new (c) int; // ←ここ
}
}
"ここ"で(size_t n, X&)に適合する呼出が見つかりませんと言われてしまいます。
ネームスペースAからグローバルスペース?に移すと難なく通ります。
operator new (...)で呼び出すとネームスペースから外さなくてもエラーになりません。
仕様でしょうか?
ちなみにVS2003です。