Зависит от типов a и b, там хренова гора правил https://en.cppreference.com/w/cpp/language/operator_other Это тип к которому могут скаститься обе переменных, а дальше я не осилил, если кто человеческим языком объяснит правила, я буду очень рад и послушаю :)
Обсуждают сегодня