18.2.4. Overloading and Namespaces
Namespaces have two impacts on function matching (§ 6.4, p. 233). One of these should be obvious: A using
declaration or directive can add functions to the candidate set. The other is much more subtle.
Argument-Dependent Lookup and Overloading
As we saw in the previous section, name lookup for functions that have class-type arguments includes the namespace in which each argument’s class is defined. This rule also impacts how we determine the candidate set. Each namespace that defines a class used as an argument (and those that define its base classes) is searched for candidate functions. Any functions in those ...
Get C++ Primer, Fifth Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.