global
예제나 진입점처럼 전역 노출이 자연스러운 이름에만 둔다.
네임스페이스 선택은 이름을 어디까지 공개할지와 호출부를 얼마나 명시적으로 남길지의 균형이다.
global
예제나 진입점처럼 전역 노출이 자연스러운 이름에만 둔다.
namespace app
모듈, 라이브러리, 도메인 단위 이름을 묶는 기본 선택이다.
namespace { }
한 소스 파일 내부 헬퍼를 외부 링크에서 숨긴다.
std::cout
명시적 접두어는 충돌 가능성을 가장 잘 드러낸다.
using std::cout
자주 쓰는 특정 이름만 좁은 스코프에 가져온다.
using namespace
헤더와 전역에서는 피하고 작은 예제나 좁은 블록에서만 신중히 쓴다.
이름 충돌 방지 이름 충돌을 막는 가장 쉬운 습관은 필요한 이름만 좁은 범위에 열고, 헤더에는 using 지시어를 남기지 않는 것이다.