Есть ли конкретная причина, по которой в C ++ не разрешены объявления вложенных пространств имен?

Стандарт не допускает такой код:

namespace Hello::World {

//Things that are in namespace Hello::World

}

и вместо этого требует

namespace Hello { namespace World {

//Things that are in namespace Hello::World

}}

Каково обоснование? Было ли это просто не продумано в то время, или есть какая-то конкретная причина, по которой это не включено?

Кажется, что первый синтаксис более прямо выражает, в каком пространстве имен он должен находиться, поскольку объявление имитирует фактическое использование пространства имен в более позднем коде. Это также приводит к меньшему отступу, если вам не повезло использовать инструмент для отступа «тупой» скобки.

Ответы на вопрос(5)

Ваш ответ на вопрос