https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88358

--- Comment #4 from Nicolas Lesser <blitzrakete at gmail dot com> ---
Almost the same fix has to apply when the declarator is unqualified: Always
treat T::something as a value, never as a type. This is not part of the allowed
contexts in P0634. I don't know which core discussion you're referring to, but
this is still a well-formed program:

template <typename T>
int pi(T::your_pi);

struct Foo { static constexpr int your_pi = 10; };

int main() {
  return pi<Foo>; // gcc rejects
}

Reply via email to