tmp/tmpm_rs5l_y/{from.md → to.md}
RENAMED
|
@@ -1,28 +1,33 @@
|
|
| 1 |
### Using namespace directive <a id="namespace.udir">[[namespace.udir]]</a>
|
| 2 |
|
| 3 |
``` bnf
|
| 4 |
using-directive:
|
| 5 |
attribute-specifier-seqₒₚₜ using namespace nested-name-specifierₒₚₜ namespace-name ';'
|
|
|
|
| 6 |
```
|
| 7 |
|
|
|
|
|
|
|
|
|
|
|
|
|
| 8 |
A *using-directive* shall not appear in class scope, but may appear in
|
| 9 |
namespace scope or in block scope.
|
| 10 |
|
| 11 |
[*Note 1*: When looking up a *namespace-name* in a *using-directive*,
|
| 12 |
only namespace names are considered, see
|
| 13 |
[[basic.lookup.udir]]. — *end note*]
|
| 14 |
|
| 15 |
The optional *attribute-specifier-seq* appertains to the
|
| 16 |
*using-directive*.
|
| 17 |
|
| 18 |
-
[*Note 2*: A *using-directive* makes the names in the
|
| 19 |
namespace usable in the scope in which the *using-directive* appears
|
| 20 |
after the *using-directive* [[basic.lookup.unqual]], [[namespace.qual]].
|
| 21 |
During unqualified name lookup, the names appear as if they were
|
| 22 |
declared in the nearest enclosing namespace which contains both the
|
| 23 |
-
*using-directive* and the
|
| 24 |
|
| 25 |
[*Note 3*: A *using-directive* does not introduce any
|
| 26 |
names. — *end note*]
|
| 27 |
|
| 28 |
[*Example 1*:
|
|
@@ -56,13 +61,13 @@ void f4() {
|
|
| 56 |
```
|
| 57 |
|
| 58 |
— *end example*]
|
| 59 |
|
| 60 |
[*Note 4*: A *using-directive* is transitive: if a scope contains a
|
| 61 |
-
*using-directive* that
|
| 62 |
-
*using-directive*s, the namespaces
|
| 63 |
-
are also eligible to be considered. — *end note*]
|
| 64 |
|
| 65 |
[*Example 2*:
|
| 66 |
|
| 67 |
``` cpp
|
| 68 |
namespace M {
|
|
|
|
| 1 |
### Using namespace directive <a id="namespace.udir">[[namespace.udir]]</a>
|
| 2 |
|
| 3 |
``` bnf
|
| 4 |
using-directive:
|
| 5 |
attribute-specifier-seqₒₚₜ using namespace nested-name-specifierₒₚₜ namespace-name ';'
|
| 6 |
+
attribute-specifier-seqₒₚₜ using namespace splice-specifier ';'
|
| 7 |
```
|
| 8 |
|
| 9 |
+
The *splice-specifier* (if any) shall designate a namespace that is not
|
| 10 |
+
the global namespace. The *nested-name-specifier*, *namespace-name*, and
|
| 11 |
+
*splice-specifier* shall not be dependent.
|
| 12 |
+
|
| 13 |
A *using-directive* shall not appear in class scope, but may appear in
|
| 14 |
namespace scope or in block scope.
|
| 15 |
|
| 16 |
[*Note 1*: When looking up a *namespace-name* in a *using-directive*,
|
| 17 |
only namespace names are considered, see
|
| 18 |
[[basic.lookup.udir]]. — *end note*]
|
| 19 |
|
| 20 |
The optional *attribute-specifier-seq* appertains to the
|
| 21 |
*using-directive*.
|
| 22 |
|
| 23 |
+
[*Note 2*: A *using-directive* makes the names in the designated
|
| 24 |
namespace usable in the scope in which the *using-directive* appears
|
| 25 |
after the *using-directive* [[basic.lookup.unqual]], [[namespace.qual]].
|
| 26 |
During unqualified name lookup, the names appear as if they were
|
| 27 |
declared in the nearest enclosing namespace which contains both the
|
| 28 |
+
*using-directive* and the designated namespace. — *end note*]
|
| 29 |
|
| 30 |
[*Note 3*: A *using-directive* does not introduce any
|
| 31 |
names. — *end note*]
|
| 32 |
|
| 33 |
[*Example 1*:
|
|
|
|
| 61 |
```
|
| 62 |
|
| 63 |
— *end example*]
|
| 64 |
|
| 65 |
[*Note 4*: A *using-directive* is transitive: if a scope contains a
|
| 66 |
+
*using-directive* that designates a namespace that itself contains
|
| 67 |
+
*using-directive*s, the namespaces designated by those
|
| 68 |
+
*using-directive*s are also eligible to be considered. — *end note*]
|
| 69 |
|
| 70 |
[*Example 2*:
|
| 71 |
|
| 72 |
``` cpp
|
| 73 |
namespace M {
|