Open
Description
According to C++20 [temp.inst]/3.1 the definition of static data member i
should not be instantiated, and therefore the program must compile:
template <class T>
class C {
static const int i = T::value;
};
C<void> x;
Clang 17.0.1 instantiates it, and compilation fails. Demo.