Most vexing parse comes into play here. You're actually declaring a function i
, not an int
variable. It shouldn't even compile (unless you actually have a function i
defined somewhere... do you?).
To value-initialize the int, you need:
int i = int();