Monday, 29 August 2016

Namespace without a name in C++











I came across this code



namespace ABC {
namespace DEF {


namespace
{


I expected the namespace should be followed by some name, but it's not the case with this code.



Is this allowed in C++? What's the advantage for this unnamed namespace?


Answer



It's called an unnamed namespace / anonymous namespace. It's use is to make functions/objects/etc accessible only within that file. It's almost the same as static in C.



No comments:

Post a Comment

c++ - Does curly brackets matter for empty constructor?

Those brackets declare an empty, inline constructor. In that case, with them, the constructor does exist, it merely does nothing more than t...