Почему возвращение ссылки через мусор STD :: Function Print?C++

Программы на C++. Форум разработчиков
Anonymous
Почему возвращение ссылки через мусор STD :: Function Print?

Сообщение Anonymous »

У меня есть следующая простая программа C ++ 20: < /p>
#include
#include
#include
#include

struct C {
std::string str = {"hello"};

const std::string& get() { return str; }
};

int main() {
C c;
std::function fun =
[&]() { return c.get(); };

std::cout
(@g
< /code>
Я использую Clang ++ 16.0. < /p>
  • Если лямбда возвращается по значению, почему компилятор разрешает его связывать с этим STD :: Function < /code>, которая возвращается с помощью ссылки? Возвращение ссылки на ссылку должно быть действительным.


Подробнее здесь: https://stackoverflow.com/questions/797 ... nt-garbage

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