Выполнение не может произойти во время компиляции. Поэтому ++i / i++ не будет. Также sizeof(foo()) не будет выполнять функцию, но вернет правильный тип.
++i
i++
sizeof(foo())