г ++, ККА и лязг принимает следующий код:C++ определение класса в другом, не заключая пространство имен с помощью «с помощью»
namespace ns { struct A ; }
namespace ns1 // note : not enclosing namespace
{
using namespace ns ;
struct A { } ;
}
это правильный код из-за стандарт.?
[пространства имен. кача] # 7: ... Тем не менее, в таких заявлениях членов пространства имен, то вложенного имя спецификатор может полагаться на использование директив неявно обеспечивает начальной части вложенного-имя-спецификатор.
, как указано в соответствующих answer,
вы можете опустить начальную часть вложенного-имя-спецификатор, но не какая-либо промежуточная часть.
(откуда я получил, что он может/должно быть сделано в ограждающих пространство имен я не помню.)