Namespace adl_shield


Internal namespace for facilities that must be protected from ADL.

This namespace is not for user consumption and is for internal Breeze usage when we want to protect users of a Breeze component from unintended argument-dependent lookup in namespace breeze. For an example, see equality_comparison.

This namespace won't normally contain any function or function template, except for those that we do want to be found by ADL (e.g. the operator functions declared by equality_comparison). Thus, if e.g. a class is defined here, an argument of that class type (or derived thereof) in an unqualified function call will trigger ADL, but the lookup won't find any unintended function or function template.

Users can just ignore this namespace, because the class name is then imported in namespace breeze via a using or a typedef (namespace breeze will not be searched by ADL).


comparisonBase class template to provide equality and relational operators (==, !=, <, <=, >, >=) for a derived class.
equality_comparisonBase class template to provide equality operators (== and !=) for a derived class.


Line 22 in breeze/operator/comparison.hpp.