#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'
}
मुझे लगता है (ए। ~ ए(), & ए) एक वैध अभिव्यक्ति है जिसका मूल्यांकन सूचक मूल्य के लिए किया जा सकता है, इसलिए इसे प्लेसमेंट तर्क के रूप में स्वीकार किया जाना चाहिए, नतीजा क्यों नहीं है?नियुक्ति तर्क के रूप में उपयोग किए जाने पर अल्पविराम अभिव्यक्ति अपेक्षित के रूप में क्यों काम नहीं करती है?
मेरे संकलक कुलपति ++ 2013 आर सी है। क्या यह एक कंपाइलर बग है?
अद्यतन:
मेरे लिए एक बग की तरह लग रहा। –