다음을 통해 공유


명명 되지 않은 네임 스페이스

로 사용 하는 전역 정적 변수를 선언 하는 대안에 명명 되지 않은 네임 스페이스를 선언할 수 있습니다.

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++
}

명명 되지 않은 네임 스페이스에는 뛰어난 대체 하는 변수를 선언 하는 정적입니다.이러한 변수 및 함수는 전체 번역 단위에서 아직 보입니다 외부에서 보이는 허용지 않습니다.엔티티를 명명 되지 않은 네임 스페이스에서 외부 링크가 있을 수 있지만 해당 번역 단위를 고유한 이름을 효과적으로 한정 되 고 따라서 다른 번역 단위에서 절대로 볼 수 있습니다.

참고 항목

참조

네임 스페이스 (C++)