Копировать/перемещать Elision во время вызова функции с временнымC++

Программы на C++. Форум разработчиков
Anonymous
Копировать/перемещать Elision во время вызова функции с временным

Сообщение Anonymous »

В программе ниже, функция f принимает свой аргумент типа A по значению и вызывается с временным a () .

Код: Выделить всё

#include 

struct A {
~A() { printf("~A() "); }
};

void f(A) {}

int main() {
f(A());
}
Я проверил, что GCC, Clang и EDG All Print ~ a () здесь, что означает, что копирование или перемещение временного. Онлайн демонстрация: https://gcc.godbolt.org/z/b4hr7rxgz
Поведение компилятора Microsoft здесь правильным в соответствии со стандартом?>

Подробнее здесь: https://stackoverflow.com/questions/796 ... -temporary

Вернуться в «C++»