Since std is the namespace that
surrounds the entire Standard C++ library, this particular using directive
allows the names in the Standard C++ library to be used without qualification.
However, you’ll virtually never see a using directive in a header file (at
least, not outside of a scope). The reason is that the using directive
eliminates the protection of that particular namespace, and the effect lasts
until the end of the current compilation unit. If you put a using directive
(outside of a scope) in a header file, it means that this loss of
“namespace protection” will occur with any file that includes this
header, which often means other header files. Thus, if you start putting using
directives in header files, it’s very easy to end up “turning
off” namespaces practically everywhere, and thereby neutralizing the
beneficial effects of namespaces.