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™?