Давайте предположим, что у меня есть следующий код:Когда именно возвращаемое значение копируется
int bar = 0;
struct Foo {
~Foo() { bar = 1; }
};
int main(int argc, char ** argv) {
Foo f;
return bar;
}
Что будет возвращаемым значением программы? 0 или 1?
Почему это было бы неопределенным поведением ?! –
Я не думаю, что параноида UB - такая плохая вещь. – Bathsheba
@ Батшеба: Мех. Если бы это был UB, простые вещи, такие как 'std :: lock_guard', не работали бы и не возвращали бы уникальные указатели по значению. –