Здравствуйте, Аноним, Вы писали:
А>он работает даже если тут UB, просто на всех компиляторах по-разному. И ИМХО нет тут никакого UB. А>operator<< принимает один аргумент код эквивалентен серии вложенных вызовов operator<< А>откуда здесь возмётся UB?
Здесь действительно нет UB. Пробрема просто в том, что порядок вычисления аргументов функции не определен.