Здравствуйте, Evgeny.Panasyuk, Вы писали:
EP>Тоже самое например происходит в показанном ранее примере C# — обрати внимание на исходный код с await, на переменную result, и на поле <result>5__1 в сгенерированном коде
Я тебе на это уже отвечал — на примере C# видно, что корутина (произвольного размера) создаётся в куче, реализует некий публичный интерфейс, а локально мы имеем лишь ссылку на этот интерфейс.
Т.е. для случая расположения корутины на куче у нас не страдает система типов, т.к. мы можем привести корутину к одному из известных типов, воспользовавшись рантайм-полиморфизмом, который работает исключительно и только для ссылочных типов данных.
V>>Где будет хранится локальная переменная tmp в твоём случае, т.е. когда iterator<> — это полностью value-type объект?
EP>Она будет хранится внутри объекта-автомата, который будет хранится внутри самого итератора. Естественно тип итератора будет зависеть от типа класса-автомата.
Ну вот на это я и намекал неделей ранее ))
В общем, выходит так, что пользоваться такой корутиной можно только через auto, но не означает ли это невозможность использования сериализации?