में फ़ाइल नाम शामिल करें मैं मैक्रो में फ़ाइल नाम शामिल करने की कोशिश कर रहा हूं। यह C++ कानूनी माना जाता है:उत्पन्न करें मैक्रो
#define INCLUDE_FILE "module_impl_win.hpp"
#include INCLUDE_FILE
इस ठीक काम करता है, लेकिन जैसे ही मैं उत्पन्न फ़ाइल नाम करने की कोशिश यह
#define INCLUDE_FILE(M) M##"_impl_win.hpp"
#include INCLUDE_FILE("module")
संकलित करने के लिए failes वास्तव में यह मेरे MSVC2010
पर चेतावनी देता हैचेतावनी C4067: अप्रत्याशित टोकन निम्नलिखित पूर्वप्रक्रमक निर्देश - उम्मीद एक नेवलिन
लेकिन इसमें फ़ाइल शामिल नहीं है।
समस्या क्या है? मुझे इससे कैसे छुटकारा मिल सकता है?
आपको इस दृष्टिकोण से सावधान रहना होगा।'_impl_win' एक पहचानकर्ता टोकन है और चूंकि यह अंडरस्कोर से शुरू होता है (और मैक्रो नेमस्पेस में है), यह कार्यान्वयन के लिए आरक्षित है। आपको अग्रणी '_' को तोड़ना चाहिए और इसे अलग से जोड़ना चाहिए, हालांकि मेरे सिर के ऊपर से मुझे यकीन नहीं है कि यह कैसे करना है क्योंकि' _' स्वयं एक आरक्षित पहचानकर्ता है। –
बीटीडब्ल्यू, यह पोर्टेबल कितना है? – ledokol
@ जेम्स मैकनेलिस: मानक रिजर्व केवल अंडरस्कोर के साथ नाम के बाद अपरकेस वर्ण (या डबल अंडरस्कोर वाले नाम) के नाम हैं। मुझे नहीं पता कि क्यों सटर हर जगह अंडरस्कोर का उपयोग करने से बचने की सिफारिश करता है .. – ledokol