Yes, this is normal, we need to look at how the scope resolution operator works in this context. If we look at a draft C ++ project, a 3.4.3 qualified name lookup actually has a very similar example, it says (my attention):
n:: decltype, , : , , . , , . [:
class A {
public:
static int n;
};
int main() {
int A;
A::n = 42;
A b;
}
-end ]