Lacks in theory and knowledge of „how does compiler works” can be very painful. Simple thing: functions argument evaluation order. We write from left to right, but how does a computer read it? The same way, as we wrote? Or maybe inversely? The C++ Documentation gives a clear answer: it is unknown.