namespace choice

네임스페이스는 소속 만들기와 이름 가져오기를 구분해 쓴다

선언은 이름을 어디에 둘지 정하고, 사용은 호출 지점에서 이름을 얼마나 줄일지 정합니다.

상황
선택
이유
같은 주제의 함수가 여러 파일에 늘어난다.
namespace app { ... }
관련 이름을 한 소속으로 묶어 충돌 범위를 줄인다.
호출 지점에서 출처가 보여야 한다.
app::print()
이름이 길어져도 모호성이 가장 작다.
한두 이름만 반복해서 쓴다.
using std::cout;
필요한 이름만 짧게 가져온다.
전체 소속을 열고 싶다.
using namespace std;
편하지만 충돌 후보를 크게 늘린다.

헤더 파일에서는 using namespace를 피합니다. 그 헤더를 포함한 모든 파일로 충돌 위험이 퍼집니다.