वर्चुअल सदस्य फ़ंक्शन पॉइंटर्स के साथ decltype
का उपयोग करना कानूनी है?आभासी सदस्य फ़ंक्शन पॉइंटर्स के साथ decltype का उपयोग
निम्नलिखित VS2012 के साथ एक आंतरिक त्रुटि (सी 1001) उत्पन्न करता है।
struct C
{
virtual void Foo() {}
typedef decltype(&C::Foo) type; //pointer
}
लेकिन यह ठीक संकलित:
struct C
{
virtual void Foo() {}
typedef decltype(C::Foo) type; //not pointer
}
यह एक बग है?
यह "अवैध" था, यह एक त्रुटि संदेश उत्पन्न करेगा, आंतरिक त्रुटि नहीं। आपको स्पष्ट रूप से कंपाइलर में एक बग मिला। – AnT
@AndreyT: +1, मैं इसे जोड़ दूंगा: * भले ही यह अवैध था, यह आंतरिक त्रुटि * का कारण नहीं बनना चाहिए। –