MSVC Bug? Overloaded member not found for constrained function

(Too long for a comment.)    This looks like a bug, indeed, and I suggest you formally report it.

Curiously enough, the following works, instead.

template <typename T>
struct Blah {
    enum { sizeofT = sizeof(T) };  // or: static const size_t sizeofT = sizeof(T);
                                   // or: static constexpr size_t sizeofT = sizeof(T);
    void blah() requires (sizeofT == 4);
};

template <typename T>
void Blah<T>::blah() requires (sizeofT == 4) {}

int main() {
    Blah<int>().blah();       // ok
    Blah<float>().blah();     // ok

//  Blah<short>().blah()      // c7500: 'blah': no function satisfied its constraints
//  Blah<double>().blah();    // c7500: 'blah': no function satisfied its constraints

    return 0;
}