20 Library introduction [library]

20.5 Library-wide requirements [requirements]

20.5.5 Conforming implementations [conforming]

20.5.5.4 Non-member functions [global.functions]

It is unspecified whether any non-member functions in the C++ standard library are defined as inline ([dcl.inline]).
A call to a non-member function signature described in Clauses [language.support] through [thread] and Annex [depr] shall behave as if the implementation declared no additional non-member function signatures.181
An implementation shall not declare a non-member function signature with additional default arguments.
Unless otherwise specified, calls made by functions in the standard library to non-operator, non-member functions do not use functions from another namespace which are found through argument-dependent name lookup ([basic.lookup.argdep]).
[Note
:
The phrase “unless otherwise specified” applies to cases such as the swappable with requirements ([swappable.requirements]).
The exception for overloaded operators allows argument-dependent lookup in cases like that of ostream_­iterator​::​operator= ([ostream.iterator.ops]):
Effects:
*out_stream << value;
if (delim != 0)
  *out_stream << delim;
return *this;
end note
]
A valid C++ program always calls the expected library non-member function.
An implementation may also define additional non-member functions that would otherwise not be called by a valid C++ program.