#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) является допустимым выражением, которое может быть оценено до значения указателя, поэтому оно должно приниматься как аргумент размещения, почему результат не так?
Мой компилятор - VС++ 2013 RC. Является ли это ошибкой компилятора?
Update:
Я выслал ошибку в connect.microsoft.com