मैं एक बाहरी "सी" फ़ंक्शन पॉइंटर के प्रकार की घोषणा करना चाहता हूं। यह एक सदस्य चर है। this question में वाक्यविन्यास मैं संकलित नहीं कर सकता।किसी सदस्य को बाहरी "सी" फ़ंक्शन में पॉइंटर के रूप में घोषित करने के लिए कैसे करें?
template<typename Sig> struct extern_c_fp {
extern "C" typedef typename std::add_pointer<Sig>::type func_ptr_type;
};
मैं दोनों सिरों पर extern "C"
रखने के साथ प्रयोग किया है, और typedef
और typename
और type
और func_ptr_type
के बीच है, लेकिन संकलक के बीच सभी को अस्वीकार कर दिया। कोई सुझाव?
'बाहरी "सी" 'उपनाम टेम्पलेट्स के साथ, यह काम करेगा। http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_active.html#1463 –
बीटीडब्ल्यू आपको 'बाहरी 'होने के लिए' सिग 'की आवश्यकता है सी" '। फ़ंक्शन प्रकार के पॉइंटर एडिशन में लिंकेज नहीं है। यह फ़ंक्शन प्रकार स्वयं ही है। फ़ंक्शन प्रकार बनाते समय आप लिंक को प्रेरित करते हैं। किसी मौजूदा फ़ंक्शन प्रकार का नामकरण नहीं करते समय - उस मौजूदा प्रकार के लिंक के पास है। –
http://liveworkspace.org/code/768027ef00bb0a31e76d8d856ac50801 यह कम शिकायत करता है, लेकिन अभी भी समस्याग्रस्त है। – Puppy