( geza42 | 2018. 11. 15., cs – 07:01 )

"Ezen a ponton az 'abs' felesleges, hiszen két 'unsigned' különbsége is 'unsigned'."

Ez nem így van. Az abs meghívása átkonvertálja az 'unsigned int'-et 'int'-re, és szépen visszajön az előjel, mintha 'int' értékekkel dolgozott volna a kód (igaz, a unsigned->signed konverzió implementation-defined, de kb. minden impl. azt csinálja, amit "kell").

Itt a kód azért nem fordul le, mert a GCC 6 óta az stdlib-ben nem csak 'abs(int)' van, hanem overloadolva van, és emiatt a compiler nem tudja eldönteni, melyiket használja.

Szóval a programozó kolléga nem bukott azért meg, bár ez a kód amúgy tényleg eléggé ronda, soha nem írnék le ilyet.