एडीएल के लिए सबसे मजबूत उपयोग केस इस तरह के मामलों के लिए है।
namespace A
{
struct S {};
S operator+(const S&, const S&);
}
namespace B
{
A::S test()
{
A::S a, b;
return a + b;
}
}
यह भी सामान्य कोड में सही swap
समारोह का चयन इसलिए यह केवल operator
कार्यों के लिए लागू नहीं करना चाहिए के लिए उपयोगी है। यह पहले से ही मानक का एक काफी जटिल हिस्सा है, जो नियमों को कुछ मामलों में काम करने से रोकता है, और जटिलता जोड़ता है, लाभ क्या होगा?
मैं स्पष्ट रूप से यह पूछने के किसी भी साफ तरीके से नहीं सोच सकता कि एक अलग नामस्थान में फ़ंक्शन को कॉल करने से काफी कम वर्बोज़ होगा और किसी भी मामले में, अभिव्यक्ति को और अधिक जटिल बना दिया जाएगा।
हम आपको कुछ ऐसा सोच रहे हैं: return [[ use_adl ]] (a + b);
बनाम return A::operator+(a, b);
?
स्रोत
2011-01-05 09:49:39
इस बारे में कभी सोचा नहीं। तो मैं भी उसे जानना चाहता हूं। अच्छा प्रश्न! – Nawaz