#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'
}
Tôi nghĩ (a. ~ A(), & a) là biểu thức hợp lệ có thể được đánh giá thành giá trị con trỏ, vì vậy nó phải được chấp nhận làm đối số vị trí, tại sao kết quả lại không như vậy?Tại sao biểu thức dấu phẩy không hoạt động như mong đợi khi được sử dụng làm đối số vị trí?
Trình biên dịch của tôi là VC++ 2013 RC. Đây có phải là lỗi trình biên dịch không?
Cập nhật:
Tôi đã về Hội một lỗi để connect.microsoft.com
Trông giống như một lỗi đối với tôi. –