Какая сторона выражения присваивания обрабатывается первым?
Рассмотрим этот код:
std::unordered_map<int, std::string> data;
data[5] = foo();
В каком порядке обрабатываются data[5]
и foo()
? Если foo()
бросает исключение, является 5
пункт в data
создается или нет?
Если поведение зависит от версии C++, как отличаются эти версии?