Hello, After some google, I find there is no way to control the scope of "using" for the moment. This seems strange as we definitely need this feature especially when writing inline member functions in c++ headers.
Currently I am trying to build a simple class in a c++ header file as following: #include <string> using namespace std; class mytest { string test_name; int test_val; public: inline string & get_name () {return test_name;} }; As a experienced C coder, I know that inline functions must be put into headers or else users could only rely on LTO. And I know that to use "using" in a header file is a bad idea as it might silently change meanings of other codes. However, after I put all my inline functions into the header file, I found I must write many "std::string" instead of "string" which is totally a torture. Can we add something like "#pragma push_using" (just like #pragma pop_macro)? I believe it's feasible and probably not hard to implement.