Что я использую в C ++ вместо ienumerable для возврата типа функции CO_YIELD?C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Что я использую в C ++ вместо ienumerable для возврата типа функции CO_YIELD?

Сообщение Anonymous »

В C#я могу написать следующий код: < /p>

Код: Выделить всё

IEnumerable evenUpTo(int max)
{
for (int i = 0; i < max; i += 2)
{
yield return i;
}
}

foreach(int e in evenUpTo(11))
{
Console.WriteLine(e);
}
И компилятор будет генерировать для меня класс, который удовлетворяет Ienumerable интерфейс. В принципе, код выглядит очень похожим: < /p>

Код: Выделить всё

#include 
#include 

??? evenUpTo(int max) {
for (int i = 0; i < max; i += 2) {
co_yield i;
}
}

int main() {
for (auto e : evenUpTo(11)) {
std::print("{0}\n", e);
}
}
Что мне поместить в качестве типа возврата ??? ? Пара итераторов (

Код: Выделить всё

.begin()
и .end () ), безусловно, достаточно, чтобы получить работу на основе диапазона для работы. Но какой контейнер я бы использовал? Но связанный вопрос-с 2012 года, а Coroutines от C ++ 20, поэтому эта тема не была рассмотрена.>

Подробнее здесь: https://stackoverflow.com/questions/795 ... a-co-yield
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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