CS/C++
[Mastering C++ Programming] - Nested namespace
sliver__
2022. 12. 3. 09:07
728x90
- 기존 namespace 선언은 아래와 같다. (-std=c++17 이전)
namespace A
{
namespace B
{
namespace C
{
int x;
}
}
};
int main(void)
{
A::B::C::x = 100;
cout << A::B::C::x << endl;
}
- -std=c++17 버전에서는 아래와 같이 선언할 수 있다.
namespace A::B::C{
int x;
}
int main(void)
{
A::B::C::x = 100;
cout << A::B::C::x << endl;
}
- namespace 선언이 간편해졌다.
- -std=c++17 옵션을 지정안하고 빌드하면 아래와 같은 에러가 나온다.
- 하지만 빌드는 됀다.
Namespace.cpp:4:12: warning: nested namespace definition is a C++17 extension; define each namespace separately [-Wc++17-extensions]
namespace A::B::C::D::X{
^~~~~~~~~~~~
{ namespace B { namespace C { namespace D { namespace X
728x90