명명 되지 않은 네임 스페이스
로 사용 하는 전역 정적 변수를 선언 하는 대안에 명명 되지 않은 네임 스페이스를 선언할 수 있습니다.
namespace { declaration-list }
설명
위의 구문을 사용 하 여 명명 되지 않은 네임 스페이스 정의 대체 된 것 처럼 동작 합니다.
namespace unique { declaration-list }
네임 스페이스를 사용 하 여 고유.
각 명명 되지 않은 네임 스페이스 식별자를 할당 하 고 프로그램에 의해 유지 관리 되 고 여기서 표현 된 고유, 전체 프로그램에 있는 다른 모든 식별자에서 다른.예를 들면 다음과 같습니다.
// unnamed_namespaces.cpp
// C2872 expected
namespace { int i; } // unique::i
void f() { i++; } // unique::i++
namespace A {
namespace {
int i; // A::unique::i
int j; // A::unique::j
}
}
using namespace A;
void h()
{
i++; // C2872: unique::i or A::unique::i
A::i++; // A::unique::i++
j++; // A::unique::j++
}
명명 되지 않은 네임 스페이스에는 뛰어난 대체 하는 변수를 선언 하는 정적입니다.이러한 변수 및 함수는 전체 번역 단위에서 아직 보입니다 외부에서 보이는 허용지 않습니다.엔티티를 명명 되지 않은 네임 스페이스에서 외부 링크가 있을 수 있지만 해당 번역 단위를 고유한 이름을 효과적으로 한정 되 고 따라서 다른 번역 단위에서 절대로 볼 수 있습니다.