https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107945
--- Comment #4 from Jason Liam <jlame646 at gmail dot com> --- Here is another invalid snippet that gcc accepts but both clang and msvc rejects correctly. https://godbolt.org/z/sz4rczEaG ``` #include <array> template<class T, std::size_t N> requires std::is_arithmetic_v<T> && (N >= 1) class Vector { static constexpr std::size_t Dimension = N; std::array<T, Dimension> Elements; public: constexpr Vector() noexcept : Elements{} {} constexpr ~Vector() = default; static constexpr Vector ZeroVector{}; }; int main() { Vector<float, 7> boo = Vector<float, 7>::ZeroVector; } ``` Related thread https://stackoverflow.com/questions/78248691/static-data-member-of-template-class-type-constexpr-vs-const-constinit