chamar sizeof em uma chamada de função ignora realmente chamar a função!}
Aconteceu de tropeçar neste pedaço de código.
<code>int x(int a){ std::cout<<a<<std::endl; return a + 1; } int main() { std::cout<<sizeof(x(20))<<std::endl; return 0; } </code>
Eu esperava que ele imprimisse 20 seguido de 4. Mas isso só imprime 4. Por que isso acontece? Não é incorreto otimizar uma função, que tem um efeito colateral (impressão para IO / arquivo etc)?