This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[RFC] add push/pop pragma to control the scope of "using"


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.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]