English version: https://telegra.ph/Default-initialization--answer-01-30
Как вы уже наверное поняли, ответ другой.
Поскольку конструктор для
Foo объявлен по умолчанию, он не является user-provided. Это означает, что Foo является агрегатным типом, а f.v инициализируется нулями. Однако Bar имеет пользовательский конструктор, хотя и созданный компилятором как конструктор по умолчанию. Поскольку этот конструктор не инициализирует явно Bar::v, b.v небезопасен для чтения, неопределенное поведение.