Re[27]: Mногопоточность: C++ vs Erlang vs другие
От: vdimas Россия  
Дата: 17.06.15 07:05
Оценка:
Здравствуйте, Evgeny.Panasyuk, Вы писали:

EP>Тоже самое например происходит в показанном ранее примере C# — обрати внимание на исходный код с await, на переменную result, и на поле <result>5__1 в сгенерированном коде


Я тебе на это уже отвечал — на примере C# видно, что корутина (произвольного размера) создаётся в куче, реализует некий публичный интерфейс, а локально мы имеем лишь ссылку на этот интерфейс.

Т.е. для случая расположения корутины на куче у нас не страдает система типов, т.к. мы можем привести корутину к одному из известных типов, воспользовавшись рантайм-полиморфизмом, который работает исключительно и только для ссылочных типов данных.


V>>Где будет хранится локальная переменная tmp в твоём случае, т.е. когда iterator<> — это полностью value-type объект?

EP>Она будет хранится внутри объекта-автомата, который будет хранится внутри самого итератора. Естественно тип итератора будет зависеть от типа класса-автомата.

Ну вот на это я и намекал неделей ранее ))
В общем, выходит так, что пользоваться такой корутиной можно только через auto, но не означает ли это невозможность использования сериализации?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.