Clang fails to compile

Hi Devs,
Consider below testcase

$cat test.cpp

struct A
{
struct B
{
double m = 0.;
};
void f(double d, const B &b = B{}) {}
};

GCC also rejects this: https://godbolt.org/z/O7FSC6

So I’m leaning towards Clang/GCC probably being correct - but CC’ing Richard Smith: I would’ve thought the enclosing class of ‘m’ would be B, and so the default member initializer wasn’t needed before the end of /that/ enclosing class. But I guess I’m wrong here?