Wszystko zależy od tego, co kompilator z tym zrobi. ZTCW to w żadnych standardach nie są opisane różnice na poziomie kodu maszynowego w tym przypadku. Możesz sobie zdezasemblować kod i zobaczyć co się utworzyło. To jednak nie da żadnej gwarancji, bo drobna zmiana w kodzie źródłowym może skutkować nie do końca lokalnymi zmianami w kodzie wynikowym. Musisz więc sprawdzać sobie w docelowym kodzie jak taka różnica wpływa na kod wynikowy.
Moje subiektywne odczucie jest takie, że operatora warunkowego powinno używać się tam, gdzie to nie zmniejszy czytelności. Czyli preferować na ifem, ale nie na siłę. W tym przypadku wybrałbym jednak trzecie rozwiązanie, czyli std::max.