मिश्रित सी/सी ++ प्रोजेक्ट में ओवरलोड रिज़ॉल्यूशन, हमें सी से सी ++ फ़ंक्शन में कॉल करने की आवश्यकता है। कहा जाने वाला फ़ंक्शन तीन अलग-अलग कार्यों के रूप में अधिभारित होता है, लेकिन हम इसे सी-साइड से अनदेखा कर सकते हैं, हम केवल सबसे उपयुक्त चुनते हैं और उस पर चिपके रहते हैं।बाहरी "सी" लिंकेज
ऐसा करने के दो तरीके हैं: (1) एक बाहरी सी ++ रैपर को बाहरी "सी" फ़ंक्शन के साथ लिखें जो बाद में अधिभारित फ़ंक्शन को कॉल करता है, या (2) केवल एक फ़ंक्शन घोषित करने के लिए हैकिश तरीका सी से बाहरी "सी" के रूप में कॉल करना चाहते हैं।
सवाल यह है कि क्या दूसरे संस्करण के लिए जाने के लिए कोई नुकसान है (दुःस्वप्न और बुरे कर्म के अलावा)? दूसरे शब्दों में, तीन अधिभारित फ़ंक्शन दिया गया है, जहां किसी को "सी" के रूप में घोषित किया जाता है, क्या हमें सी ++ पक्ष के साथ परेशानी की उम्मीद करनी चाहिए, या क्या यह मानक के अनुसार अच्छी तरह परिभाषित है?
कोड कोड गंध के समाधान का वर्णन करने के लिए "हैकिश" शब्द का उपयोग नहीं कर रहा है? –
हां यह निश्चित रूप से एक कोड गंध है, मेरे एक कॉलेग्यू ने मुझे इसके बारे में पूछा और मैंने समाधान 1 करने की सिफारिश की क्योंकि मुझे लगता है कि यह क्लीनर है। लेकिन साथ ही, अगर हम समाधान 2 के लिए गए तो क्या होता है, इसके बारे में मुझे उत्सुकता है ... तथ्य यह है कि हमें पूछना है कि एक कम अनिश्चित समाधान मौजूद होने पर पहले से ही कोड गंध है :) – harald