From Jason Turner

[basic.lookup.general]

Diff to HTML by rtfpessoa

tmp/tmpd8dxg9nz/{from.md → to.md} RENAMED
@@ -1,12 +1,12 @@
1
  ### General <a id="basic.lookup.general">[[basic.lookup.general]]</a>
2
 
3
- The name lookup rules apply uniformly to all names (including
4
- *typedef-name*s [[dcl.typedef]], *namespace-name*s [[basic.namespace]],
5
- and *class-name*s [[class.name]]) wherever the grammar allows such names
6
- in the context discussed by a particular rule. Name lookup associates
7
- the use of a name with a set of declarations [[basic.def]] of that name.
8
  Unless otherwise specified, the program is ill-formed if no declarations
9
  are found. If the declarations found by name lookup all denote functions
10
  or function templates, the declarations are said to form an *overload
11
  set*. Otherwise, if the declarations found by name lookup do not all
12
  denote the same entity, they are *ambiguous* and the program is
@@ -79,14 +79,14 @@ the *using-declarator* [[namespace.udecl]].
79
 
80
  In certain contexts, only certain kinds of declarations are included.
81
  After any such restriction, any declarations of classes or enumerations
82
  are discarded if any other declarations are found.
83
 
84
- [*Note 4*: A type (but not a *typedef-name* or template) is therefore
85
  hidden by any other entity in its scope. — *end note*]
86
 
87
  However, if a lookup is *type-only*, only declarations of types and
88
  templates whose specializations are types are considered; furthermore,
89
- if declarations of a *typedef-name* and of the type to which it refers
90
- are found, the declaration of the *typedef-name* is discarded instead of
91
- the type declaration.
92
 
 
1
  ### General <a id="basic.lookup.general">[[basic.lookup.general]]</a>
2
 
3
+ *Name lookup* associates the use of a name with a set of declarations
4
+ [[basic.def]] of that name. The name lookup rules apply uniformly to all
5
+ names (including *typedef-name*s [[dcl.typedef]], *namespace-name*s
6
+ [[basic.namespace]], and *class-name*s [[class.name]]) wherever the
7
+ grammar allows such names in the context discussed by a particular rule.
8
  Unless otherwise specified, the program is ill-formed if no declarations
9
  are found. If the declarations found by name lookup all denote functions
10
  or function templates, the declarations are said to form an *overload
11
  set*. Otherwise, if the declarations found by name lookup do not all
12
  denote the same entity, they are *ambiguous* and the program is
 
79
 
80
  In certain contexts, only certain kinds of declarations are included.
81
  After any such restriction, any declarations of classes or enumerations
82
  are discarded if any other declarations are found.
83
 
84
+ [*Note 4*: A type (but not a type alias or template) is therefore
85
  hidden by any other entity in its scope. — *end note*]
86
 
87
  However, if a lookup is *type-only*, only declarations of types and
88
  templates whose specializations are types are considered; furthermore,
89
+ if declarations of a type alias and of its underlying entity are found,
90
+ the declaration of the type alias is discarded instead of the type
91
+ declaration.
92