में नामस्थान और ऑपरेटर ओवरलोडिंग किसी विशेष नामस्थान में लाइब्रेरी को अधिकृत करते समय, उस नामस्थान में कक्षाओं के लिए ओवरलोडेड ऑपरेटरों को प्रदान करना अक्सर सुविधाजनक होता है। ऐसा लगता है (कम से कम छ साथ ++) कि अतिभारित ऑपरेटरों या तो लाइब्रेरी की नाम स्थान में लागू किया जा सकता:सी ++
namespace Lib {
class A {
};
A operator+(const A&, const A&);
} // namespace Lib
या वैश्विक नामस्थान
namespace Lib {
class A {
};
} // namespace Lib
Lib::A operator+(const Lib::A&, const Lib::A&);
मेरे परीक्षण से, वे दोनों ठीक से काम करने लगते हैं। क्या इन दो विकल्पों के बीच कोई व्यावहारिक अंतर है? क्या या तो बेहतर दृष्टिकोण है?
लाइब्रेरी नेमस्पेस का उपयोग करने का एक अन्य कारण: [यह पोस्ट] (http://stackoverflow.com/questions/5195512/namespaces-and-operator-resolution) में एक उदाहरण है जहां वैश्विक नामस्थान का उपयोग करना काम नहीं करता है। – Tim