Chapter 59 of the C ++ standards for encoding Sutter and Alexandrescu is entitled "Do not write namespace names in the header file or before #include". Therefore, they say that you should not write using the declaration or using the directive before the #include directive, because this may affect #included. It also means that you should not write in your own header files, because someone can # include them, and this will change the behavior at the inclusion point (see, for example, some Boost header library).
Therefore, do not write using the header files and before the #include directive. Feel free to write in the implementation files after the #include directives.
source share