Other than in namespace
std
or in a namespace
within namespace
std,
a program may provide
an overload for any library function template
designated as a
customization point,
provided that
(a)
the overload's declaration depends
on at least one user-defined type
and
(b)
the overload meets the standard library requirements
for the customization point
.