के साथ संकलित करते समय 'प्रतिबंध' कीवर्ड को हटाने के लिए मैक्रो मुझे मूल रूप से सी में सी ++ प्रोजेक्ट में लिखे गए कुछ शीर्षलेखों को शामिल करने की आवश्यकता है। शीर्षलेख फ़ाइलों में, restrict
keyword का उपयोग किया जाता है, जो C++ के लिए सिंटैक्स त्रुटि की ओर जाता है।सी ++
मैं एक प्रीप्रोसेसर मैक्रो की तलाश में हूं जो जांचता है कि मैं एक सी ++ कंपाइलर के साथ संकलित कर रहा हूं और इस मामले में restrict
कीवर्ड हटा देता हूं।
'प्रतिबंध' को परिभाषित करने के लिए कुछ भी नहीं होगा सी में भी कानूनी होगा (चूंकि प्रीप्रोसेसर सी संकलक इसे देखे जाने से पहले स्रोत को बदलता है), लेकिन इसका इरादा नहीं होगा। –
@AlexeyFeldgendler यही कारण है कि यह '#ifdef __cplusplus' के साथ लपेटा गया है ... – SomeWittyUsername
यदि आप सी हेडर्स को शामिल करने से पहले सी ++ कोड में '# परिभाषित' डालते हैं (साथ ही 'बाहरी" सी' {'के साथ आपको आवश्यकता होगी), आपको '# ifdef/# endif' की भी आवश्यकता नहीं होगी। कम से कम आक्रामक होने का प्रयास करें, जिसका अर्थ है कि आपके सी कोड को संशोधित न करें क्योंकि कोई C++ में lib का उपयोग करने का प्रयास कर सकता है। इसके बजाए सी ++ कोड संशोधित करें। –