2012-01-20 9 views
6

मैं विजुअल स्टूडियो 2010 एक्सप्रेस का उपयोग कर रहा हूं। जब मैं की तरह "के पास," अब तक "," में "," बाहर "कुछ चर नाम, का उपयोग करें, मैं संकलन नहीं कर सकता: मैं वाक्य रचना का इस्तेमाल किया चर नाम के बाद स्थित त्रुटियों मिल उदाहरण:।विजुअल स्टूडियो मुझे कुछ चर नामों का उपयोग करने की अनुमति नहीं देता

z = 1.0/(far - near); 

त्रुटि:?।

error C2059: syntax error : ')' 

मैं इस "सुविधा" निष्क्रिय कर सकते हैं कैसे

उत्तर

12

far और near निर्मित संकलक कीवर्ड 16-बिट दिनों में वापस कर रहे थे वे अब मौजूद नहीं हैं और वे अब कोई अर्थ , लेकिन वे अभी भी विंडोज़ में मैक्रोज़ के रूप में परिभाषित हैं पीछे की संगतता कारणों के लिए शीर्षलेख।

आप उन्हें नहीं करना चाहते हैं, बस उन्हें परिभाषित (या Windows शीर्ष लेख शामिल नहीं है):

#undef far 
#undef near 
+0

धन्यवाद, यह काम करता है। क्या ऐसे सभी कीवर्ड बंद करने का कोई विकल्प है (जो सभी सी ++ मानक का हिस्सा नहीं हैं)? – user1161552

+1

@ user1161552: हां, उस पंक्ति को हटाएं जो आपके कोड से '#' शामिल है। वे कीवर्ड नहीं हैं, वे विंडोज हेडर में परिभाषित मैक्रोज़ हैं। –

+0

बस आपके उत्तर में आया और यह इंगित करना चाहता था कि यह कार्यान्वयन आरक्षित नेमस्पेस (दो अंडरस्कोर से शुरू होने वाले नाम) के लिए एक आदर्श उदाहरण होगा। माइक्रोसॉफ्ट को उस नामस्थान को ध्यान में रखने के लिए यहां दोष देना है। – datenwolf

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