2014-12-15 10 views
9

मैं इस तरह एक समारोह सूचक बनाने के लिए करना चाहते हैं:मैं एक निष्पादन फ़ंक्शन पॉइंटर कैसे बना सकता हूं?

void(*function_pointer)()noexcept; 

लेकिन, यह काम नहीं करता। ऐसा लगता है कि फ़ंक्शन घोषणा में एक अपवाद विनिर्देशक अमान्य है। हालांकि ऐसा करने का एक तरीका होना चाहिए। सही?

यह एक प्रश्न से जुड़ा हुआ था जो इस जैसा नहीं है। यहां मैं पूछ रहा हूं कि फ़ंक्शन पॉइंटर को बिना किसी विनिर्देशक के साथ कैसे बनाया जाए। उस प्रश्न में पूछा गया था या उत्तर नहीं दिया गया था "फ़ंक्शन टाइपिफ़ में निर्दिष्ट विनिर्देशक"।

+3

यह किस तरह से काम नहीं करता है? संकलन त्रुटि? कौन सा कंपाइलर? क्या त्रुटि है? –

+2

http://goo.gl/N9wyLv - अपेक्षा के अनुसार काम करने लगता है। – Mat

उत्तर

7

[except.spec]/2:

एक अपवाद-विनिर्देश एक समारोह प्रकार के लिए एक समारोह declarator पर ही प्रदर्शित करेगा, सूचक प्रकार कार्य करने के लिए, कार्य करने के लिए संदर्भ प्रकार, या सदस्य फ़ंक्शन प्रकार के सूचक जो की शीर्ष-स्तरीय प्रकार की घोषणा या परिभाषा है, या पैरामीटर या फ़ंक्शन घोषणाकर्ता में वापसी प्रकार के रूप में दिखाई देने वाले इस प्रकार के प्रकार पर।

तो आपकी घोषणा वास्तव में अच्छी तरह से बनाई गई है, और क्लैंग compiles it

संभवतः आपका कंपाइलर अद्यतित नहीं है।

संबंधित मुद्दे