Предположим, у вас есть такие функции:
Foo foo() {
Foo foo;
// more lines of code
return foo; // is the copy constructor called here?
}
Foo bar() {
// more lines of code
return Foo(); // is the copy constructor called here?
}
int main() {
Foo a = foo();
Foo b = bar();
}
Когда возвращается любая из функций, вызывается ли конструктор копирования (предположим, что он будет)?