Предположим, у меня есть сопрограмма, которая выглядит примерно так:
Код: Выделить всё
/*...*/ SomeCoroutine()
{
const auto& ref = std::string("abc");
co_yield ref.size(); // assume the coroutine really does suspend
co_return ref.size();
}
- Перед приостановкой сопрограммы является ли ref локальной переменной в стеке или она действительно является членом состояния сопрограммы (в этом случае я сомневаюсь, что она действительно может быть ссылкой)?
- После возобновления сопрограммы является ли ref локальной переменной в стеке или она действительно является членом состояния сопрограммы? Если это все еще ссылка, то висит ли она сейчас или строка каким-то образом скопировалась?
Подробнее здесь: https://stackoverflow.com/questions/798 ... -coroutine
Мобильная версия