네임스페이스

네임스페이스는 같은 이름을 문맥별로 분리합니다

std::cout처럼 이름 앞에 소속을 붙이면 큰 프로젝트에서도 함수, 타입, 상수의 충돌을 줄일 수 있습니다.

선언

이름을 영역 안에 보관

namespace 블록은 관련 함수와 타입을 하나의 이름 공간으로 묶습니다.

namespace math
범위 지정

소속을 명확히 호출

:: 연산자로 어떤 네임스페이스의 이름을 사용할지 지정합니다.

std::cout
using

반복 접두어를 줄임

작은 범위에서 특정 이름만 가져오면 읽기 편의와 명확성을 함께 지킬 수 있습니다.

using std::string
익명 공간

파일 내부로 제한

익명 네임스페이스는 현재 번역 단위 안에서만 보이는 이름을 만들 때 사용합니다.

namespace { }
충돌 회피라이브러리와 사용자 코드가 같은 함수 이름을 써도 소속이 다르면 구분됩니다.
범위 제한using namespace는 헤더보다 짧은 구현 범위에서만 조심스럽게 사용합니다.
중첩 구조큰 도메인은 company::module처럼 단계적으로 이름을 좁힐 수 있습니다.