Область пространства имен C++

Спецификация C++ (http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2011/n3242.pdf, раздел 7.5.4) утверждает, что

Спецификация связи должна встречаться только в области пространства имен.

Что именно означает «область пространства имен»? Означает ли это, что спецификация связи, такая как extern "C", не может находиться в глобальной области видимости, а только в пространстве имен?
Что именно означает "область действия пространства имен"?


person Baruch    schedule 23.10.2013    source источник


Ответы (1)


Это означает, что extern "C" должно быть только в области видимости пространства имен (не области видимости класса, области видимости блока и т.д.). То, что не находится в области имен, но находится в глобальной области видимости - находится в области видимости глобального пространства имен.

The potential scope denoted by an original-namespace-name is the concatenation of the declarative regions established by each of the namespace-definitions in the same declarative region with that original-namespace-name.

person ForEveR    schedule 23.10.2013