что порядок вычисления аргументов функции? На самом деле это же конструктор, и фигурные скобки тут вообще ничего не гарантируют.
А ещё вот я тут придумал кококорутины на списках аргументов: run_parallel(task1(), task2(), task3()); — исполнения тасков могут весело-задорно перемежаться.
Хотя блин, там же вроде list-initialization, тогда похоже на баг. А вообще, как понимать эти две противоречивые строки (cppreference): 10) In list-initialization, every value computation and side effect of a given initializer clause is sequenced before every value computation and side effect associated with any initializer clause that follows it in the brace-enclosed comma-separated list of initalizers. 21) Every expression in a comma-separated list of expressions in a parenthesized initializer is evaluated as if for a function call (indeterminately-sequenced) (since C++17) Где можно по(д)смотреть текущую редакцию/драфт стандарта?
Обсуждают сегодня