#include <iostream>
class A {};
typedef int (*j)() throw(A);
int f()
{
std::cout << "function f" << std::endl;
return 0;
}
int main()
{
j y = f;
y();
}
सभी साइटों में और स्ट्राउस्ट्रप भी कहते हैं कि संकलन त्रुटि होगी, लेकिन यह संकलित करता है। क्या मानक में कोई बदलाव है?क्या यह संकलन त्रुटि typedef int (* j)() फेंक (ए) है?
कौन सा संकलक और कौन सा संस्करण? –
माइक्रोसॉफ्ट विजुअल स्टूडियो 2012 –
चूंकि आप दावा कर रहे हैं कि आप 'foo()' के प्रोटोटाइप में 'टाइपनाम ए' ऑब्जेक्ट फेंक रहे हैं, वास्तव में इसे अभी तक घोषित किए बिना, मैं नहीं देख सकता कि यह * कैसे नहीं है कंपाइलर त्रुटि। आपको 'ए' या "अपेक्षित') त्रुटि के लिए एक अनिर्धारित प्रतीक प्राप्त करना चाहिए। – WhozCraig