जीसीसी समकक्ष के रूप में इन दोनों समारोह घोषणाओं व्यवहार करता है:स्थिरांक संकेत
void F(int* a) { }
void F(int* const a) { }
test.cpp: In function 'void F(int*)':
test.cpp:235: error: redefinition of 'void F(int*)'
test.cpp:234: error: 'void F(int*)' previously defined here
यह कुछ समझ में आता है क्योंकि एक फोन करने वाले हमेशा इस मामले में स्थिरांक अनदेखी करेंगे ... यह केवल उपयोग को प्रभावित करता है फ़ंक्शन के अंदर 'ए' पैरामीटर का।
मैं क्या सोच रहा हूं कि (यदि कहीं भी) मानक कहता है कि ओवरलोड रिज़ॉल्यूशन के उद्देश्य के लिए फ़ंक्शन तर्क के रूप में उपयोग किए गए पॉइंटर्स पर क्वालीफायर को छोड़ना विशेष रूप से ठीक है।
(मेरी असली मुद्दा यह है कि मैं यह पता लगाने के लिए करना चाहते हैं जहां जीसीसी इन व्यर्थ क्वालिफायर स्ट्रिप्स आंतरिक रूप से, और सी के बाद से ++ जीसीसी के दृश्यपटल मानक संदर्भित टिप्पणियों से अटे पड़े है, मानक के प्रासंगिक अनुभाग मुझे पाने में आपकी मदद कर सकता है । फोन करने वाले के लिए एक ही होने के नाते
void foo(int);
void foo(const int);
: सही स्थान)
AFAIK यह सिर्फ पॉइंटर्स के लिए नहीं है। – Troubadour