আর্গুমেন্ট-ডিপেনডেন্ট লুকআপ (ADL) হলো অনকোয়ালিফাইড ফাংশন নাম লুকআপের একটি প্রোটোকল। ফাংশন কল এক্সপ্রেশন (অপারেটর ওভারলোডিং সহ) এর আর্গুমেন্টগুলোর নেমস্পেসেও ফাংশন খুঁজে বের করা হয়।
উদাহরণ
namespace MyNamespace {
class A {};
void f(A &a, int i) {}
}
int main() {
MyNamespace::A a;
f(a, 0); // MyNamespace::f কল হয় ADL-এর মাধ্যমে
}
এখানে f কল করার সময় আর্গুমেন্ট a-র টাইপ MyNamespace::A। তাই কম্পাইলার MyNamespace-এও f খুঁজে পায়।
এই কারণেই std::cout << "hello" কাজ করে - operator<< std নেমস্পেসে ডিফাইনড থাকে, আর ADL সেটি খুঁজে বের করে।