Мне не нравится using namespace std
, но мне также надоело вводить std::
перед каждым cout
, cin
, cerr
и endl
. Поэтому я подумал о том, чтобы дать им более короткие имена:
// STLWrapper.h
#include <iostream>
#include <string>
extern std::ostream& Cout;
extern std::ostream& Cerr;
extern std::istream& Cin;
extern std::string& Endl;
// STLWrapper.cpp
#include "STLWrapper.h"
std::ostream& Cout = std::cout;
std::ostream& Cerr = std::cerr;
std::istream& Cerr = std::cin;
std::string _EndlStr("\n");
std::string& Endl = _EndlStr;
Это работает. Но, есть ли какие-либо проблемы в вышеупомянутом, которые мне не хватает? Есть ли лучший способ добиться того же?