निम्नलिखित स्निपेट पर विचार करें:बेनामी नाम स्थान अस्पष्टता
void Foo() // 1
{
}
namespace
{
void Foo() // 2
{
}
}
int main()
{
Foo(); // Ambiguous.
::Foo(); // Calls the Foo in the global namespace (Foo #1).
// I'm trying to call the `Foo` that's defined in the anonymous namespace (Foo #2).
}
मैं कैसे इस मामले में एक गुमनाम नाम स्थान के अंदर कुछ का उल्लेख कर सकते हैं?
ठीक है, मानक कहता है कि क्या समझ में आता है। हालांकि, फिर एक अस्पष्टता क्यों है? अगर मैं अज्ञात नेमस्पेस में फू तक नहीं पहुंच पा रहा हूं, तो संकलक यह समझने में सक्षम होना चाहिए कि एकमात्र अन्य फू वैश्विक दायरे में से एक है। मुझे स्कोप रिज़ॉल्यूशन ऑपरेटर का बिल्कुल उपयोग नहीं करना चाहिए। समस्या के उस पहलू पर कोई विचार? – sharp02
पुन: आपका संपादन - यह अब काफी कुछ है जो मैं कर रहा हूं, सिवाय इसके कि मैं वास्तविक लक्ष्य फ़ंक्शन पर जाने के लिए एक रैपर फ़ंक्शन का उपयोग करता हूं। – sharp02
@ शार्प: उस दायरे में दो प्रतीक 'फू' हैं। समकक्ष स्थिति पर विचार करें: 'नामस्थान ए {int i; } नामस्थान बी {int i; } नामस्थान ए का उपयोग कर; नामस्थान बी का उपयोग कर; '। –