[c++] 네임스페이스와 언어 규약

C++은 다른 라이브러리나 모듈과의 충돌을 피하기 위해 네임스페이스를 제공합니다. 네임스페이스를 사용하여 코드의 일부를 캡슐화하고, 이름 충돌을 방지하며, 코드를 구조화할 수 있습니다. C++ 표준 라이브러리는 std 네임스페이스에 정의되어 있으며, 일반적으로 사용자 정의 네임스페이스는 회사 이름 뒤에 붙여서 정의합니다.

#include <iostream>

namespace ns {
    void func() {
        std::cout << "Inside ns namespace" << std::endl;
    }
}

int main() {
    ns::func();  // ns 네임스페이스의 func 함수 호출
    return 0;
}

위의 예제에서 ns라는 네임스페이스에 func 함수가 정의되어 있으므로, ns::func()와 같이 해당 함수를 호출할 수 있습니다.

언어 규약

네임스페이스의 이름은 사용자가 정의할 수 있는 식별자와 규칙에 따라 정해져야 합니다. 네임스페이스 이름은 문자로 시작하며, 밑줄과 숫자를 포함할 수 있습니다. 또한, 네임스페이스 이름은 콜론으로 시작해서는 안 되며, 이중 콜론(::)은 네임스페이스의 범위 지시자로 사용됩니다.

C++ 언어 규약에서는, 기타 사용자가 정의한 네임스페이스 이름을 사용하여 충돌을 방지하기 위해 사용자별로 접두어를 사용하는 것을 권장합니다. 이러한 규약을 따르면 코드의 가독성을 높일 수 있으며, 다른 라이브러리와의 충돌을 예방할 수 있습니다.

따라서, 네임스페이스의 이름을 지을 때에는 일반적으로 회사 이름 또는 프로젝트 이름과 같은 접두어를 사용하여 충돌을 방지하는 것이 권장됩니다.

이상으로 C++ 네임스페이스와 언어 규약에 대해 알아보았습니다.

참고 자료