10
#include <new>

using namespace std;

void f(void*)
{}

struct A
{};

int main()
{
    A a;

    f((a.~A(), &a)); // OK
    new (&a) A();    // OK

    new ((a.~A(), &a)) A(); // error C2059: syntax error : 'type'
}

(a.~A(), &a) はポインター値に評価できる有効な式だと思うので、配置引数として受け入れる必要がありますが、結果がそうでないのはなぜですか?

私のコンパイラは VC++ 2013 RC です。これはコンパイラのバグですか?

アップデート:

connect.microsoft.comにバグを報告しました

4

1 に答える 1