What rule makes the following code compile without error:
using integer = int;
struct Foo
{
int integer;
};
int main() {
Foo f;
int integer;
f.integer;
}
using is of course not a simple replacement for #define integer int, but what makes this code apparently well-formed while int int; would make it ill-formed?