This works too:
struct S {
void function(int) f1 = (int) { }; // OK
}
Which makes me think, it isn't allowing it because of the context
pointer. But if that context pointer is null, it should work.
File a bug report and hope it gets fixed soon™?