आर्गुमेंट-डिपेंडेंट लुकअप (ADL) फंक्शन-कॉल एक्सप्रेशन में अनक्वालिफाइड फंक्शन नामों को देखने के लिए एक प्रोटोकॉल है।
इन फंक्शन कॉल एक्सप्रेशन में ओवरलोडेड ऑपरेटर्स के लिए इम्प्लिसिट फंक्शन कॉल शामिल हैं।
फंक्शन नामों को उनके आर्गुमेंट्स के नेमस्पेस में देखा जाता है, इसके अलावा सामान्य अनक्वालिफाइड नेम लुकअप द्वारा विचार किए जाने वाले स्कोप और नेमस्पेस में भी। आर्गुमेंट-डिपेंडेंट लुकअप एक अलग नेमस्पेस में परिभाषित ऑपरेटर्स का उपयोग करना संभव बनाता है।
उदाहरण
namespace MyNamespace{ class A {}; void f( A &a, int i) {} } int main() { MyNamespace::A a; f( a, 0 ); //calls MyNamespace::f }
f के फंक्शन कॉल का लुकअप आर्गुमेंट a पर निर्भर था। यही स्थिति << और >> जैसे आर्गुमेंट्स पर लागू होती है जिन्हें std नेमस्पेस में देखा जाता है जब हम cout, cin, endl आदि का उपयोग करते हैं।