V některých případech kompilátor C++ (aspoň GCC 4.
může vysypat rychlejší strojový kód se strukturou v návratové hodnotě než s voláním odkazem. Např. právě u toho dělení a modula. Samožná definice struktury v C++ je "zadarmo" narozdíl od Javy (žádný bytecode, konstruktor, alokace, je to jen informace pro kompilátor). Při vrácení struktury se kdysi vytvořila struktura na zásobníku před voláním funkce a do funkce se poslal odkaz, takže to bylo stejné, jako by se totéž udělalo ručně s jednotlivými položkami struktury. Voláním odkazem se tedy téměř nic nezískalo. Moderní kompilátor ale dokáže víc: pokud se funkce inlinuje, což bude případ dělení / modulo, pak může výsledek v registrech rax/rdx rovnou použít v dalším výrazu a bude zhruba stejně efektivní, jako by dělění a modulo byly součásti většího výrazu a přitom se provede pouze jedna operace dělení. Tedy získáme něco, co dřívě šlo získat pouze naprogramováním celého výrazu v assembleru.
Obecně se v C++ vyplatí napsat kód nejprve bez zbytečných prasáren, nechat si vyjet assembler (gcc -s) a teprve při nespokojenosti optimalizovat prasárnami. GCC 4.8 optimalizuje jak ďábel a řekl bych že lépe než Visual C++.