using + namespace

by HJH

지난 매거진을 삭제하며 ZeliAI 매거진에 통합합니다.




C++은 쉽지 않은 언어지만, 프로그래머에게는 필수 언어라 할 수 있다. 컴파일러, 운영체제, 하드웨어(특히 CPU & memory & mmio로 치면 GPU까지)


using json = nlohmann::json;

namespace fs = std::filesystem;

using namespace std;


언듯 같은 듯 보이나, 셋은 모두 다르다. using은 typedef 나 bash shell의 alias랑 비슷하게 별칭을 지정하는 것이다. namespace는 namespace 자체를 축약해서 쓰려고 만든 것이다. std::filesystem::path는 fs::path로 쓸 수 있다. 둘을 합치면 해당 파일 전역에 std란 이름을 빼도 된다. 그래서 굉장히 위험하다. 프로그래밍할 때는 이름이 정말 중요한데 직관적으로 하려다 보니 이름 중복이 많아서 namespace를 나눈 것인데 그것을 다시 없애는 것이기 때문이다. 물론, 일부러 쓸 경우도 있다.

무례한 상대방에 대한 개발자만의 복수 방법이랄까. 물론, 사용자는 잘 쓰고 있으니 말이다.