The behavior of a C++ program is undefined if it adds declarations or definitions to namespace
std
or to a namespace within namespace
std
unless otherwise specified.
A program may add a template specialization for any standard library template
to namespace
std only if the declaration
depends on a user-defined type
and the specialization meets the standard library requirements
for the original template and is not explicitly prohibited.176
a deduction guide for any standard library class template.
A program may explicitly instantiate a template defined in the standard library
only if the declaration depends on the name of a user-defined type
and the instantiation meets the standard library requirements for the
original template.
Any
library code that instantiates other library templates
must be prepared to work adequately with any user-supplied specialization
that meets the minimum requirements of this International Standard.
The behavior of a C++ program is undefined if it adds declarations or definitions to namespace
posix
or to a namespace within namespace
posix
unless otherwise specified.
The namespace posix is reserved for use by
ISO/IEC 9945 and other POSIX standards.