· 01:13
Hello, and welcome to the C++ Basics podcast. I’m your host, and today we’re diving into name lookup—how the compiler finds symbols in your code.
First up, Qualified Name Lookup. As the article explains, “Qualified name lookup is relatively simple: it only searches the explicitly named scope. It does not search enclosing or outer scopes.” So when you write a::b::x, the compiler only looks inside a::b.
Next, Unqualified Name Lookup applies when you refer to a symbol without qualification. “Unqualified name lookup starts in the innermost scope and proceeds outward.” It checks local variables, class members, enclosing namespaces, and finally global scope or any using directives.
Finally, Argument-Dependent Lookup, or ADL, kicks in for function calls. It “considers the namespaces of function arguments,” so calling normalize(a) finds math::normalize without extra qualification.
Mastering these lookup rules helps you avoid ambiguity and hidden bugs in your C++ code. Thanks for listening!
Link to Article
Listen to jawbreaker.io using one of many popular podcasting apps or directories.