Вопрос: Является ли проигнорированное возвращаемое значение разрушенным немедленно или в момент выхода из области видимости.?
Ниже приведен код для моего компилятора
Вывод:
Кто это делает, не нуждается в этом.
Кто покупает его, не имеет никакого смысла.
Кто его использует, он не видит и не чувствует.
Что это?
Поэтому игнорируемое значение немедленно разрушается. Но является ли этот компилятор конкретным или стандартным поведением?
struct foo
{
~foo()
{
std::cout << "Who makes it, has no need of it. \n"
<< "Who buys it, has no use for it. \n";
}
}
foo createFoo()
{
return foo();
}
int main(int argc, char* argv[])
{
createFoo();
std::cout << "Who uses it can neither see nor feel it.\n"
<< "What is it?";
}