int f {}; // initializer is empty braces (value initialization)
value will be set to 0 when this happens. this is zero initialization
manually setting 0 vs {}
int x {0};
int x{};
above does the same thing
Use explicit zero initialization when you are actually using zero. Use Value initialization when the value is temporary and will be replaced.