Unless explicitly prohibited,
a program may add a template specialization for
any standard library class template
to namespace
std provided that
(a) the added declaration
depends on at least one program-defined type
and
(b) the specialization meets the standard library requirements
for the original template.175

The behavior of a C++ program is undefined
if it declares an explicit or partial specialization
of any standard library variable template,
except where explicitly permitted by the specification of that variable template.

A program may explicitly instantiate
a class template defined in the standard library
only if the declaration
(a) depends on the name of at least one program-defined type
and
(b) the instantiation meets the standard library requirements for the
original template.

Moreover,
the behavior of a C++ program is unspecified (possibly ill-formed)
if it attempts to form a reference
to F
or
if it attempts to form a pointer-to-member designating
either a standard library non-static member function ([member.functions])
or an instantiation of a standard library member function template.

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.176

Any library customization point
must be prepared
to work adequately
with any user-defined overload
that meets the minimum requirements
of this document.

Therefore
an implementation may elect,
under the as-if rule ([intro.execution]),
to provide any customization point
in the form
of an instantiated function object ([function.objects])
even though the customization point's specification
is in the form
of a function template.

The template parameters
of each such function object
and the function parameters
and return type
of the object's operator()
must match those
of the corresponding customization point's specification.