17 Library introduction [library]

17.6 Library-wide requirements [requirements]

17.6.5 Conforming implementations [conforming] Global and non-member functions [global.functions]

It is unspecified whether any global or non-member functions in the C++ standard library are defined as inline ([dcl.fct.spec]).

A call to a global or non-member function signature described in Clauses [language.support] through [thread] and Annex [depr] shall behave as if the implementation declared no additional global or non-member function signatures.187

An implementation shall not declare a global or non-member function signature with additional default arguments.

Unless otherwise specified, global and non-member functions in the standard library shall not use functions from another namespace which are found through argument-dependent name lookup ([basic.lookup.argdep]). [ Note: The phrase “unless otherwise specified” is intended to allow argument-dependent lookup in cases like that of ostream_iterator::operator= ([ostream.iterator.ops]):


*out_stream << value;
if (delim != 0)
  *out_stream << delim;
return *this;

 — end note ]

A valid C++ program always calls the expected library global or non-member function. An implementation may also define additional global or non-member functions that would otherwise not be called by a valid C++ program.