Считается ли стандарт C ++ 1y для поддержки сопрограмм / горутин?

Я думаю, что сопрограмма / рутина очень полезна в случае, когда много одновременных небольших задач должны быть выполнены быстро. Текущий std::thread не может удовлетворить требования, из-за его высокой стоимости.

Я также думаю, что сопрограмма / подпрограмма не может поддерживаться просто через библиотеку C ++, она должна быть реализована непосредственно основными функциями языка. Потому что сопрограмма / рутина имеет особую семантику, которая не имеет соответствующей концепции в текущем стандарте C ++.

При условии, что мы добавим новое ключевое слово cppgoтогда мы можем написать код следующим образом:

void f(int n)
{
...
}

int main()
{
for (int i = 0; i < 10000; ++i)
{
cppgo f(i);
}
}

Как круто это будет!

Считается ли стандарт C ++ 1y для поддержки сопрограмм / горутин?

4

Решение

Есть несколько предложений, связанных с сопрограммами, но они предназначены не для C ++ 14, а для более поздней версии. Вот несколько из этих предложений:

Существуют и другие, более или менее связанные документы (посмотрите на документы, связанные с параллелизмом, и будущие, связанные с ними, и вы увидите тенденцию к разрешению сопрограмм).

Некоторые люди также обсуждают возможность иметь общий синтаксис для «разворачивания монад» (например, await Ключевое слово предлагается в 1 ) который будет работать как для std::future и другие типы, не связанные с параллелизмом, такие как optional или же expected, Такие функции позволили бы беспрепятственно применять одни и те же алгоритмы как к возобновляемым, так и не возобновляемым функциям с участием или без участия параллелизма. По крайней мере, в теории.

Вот список обсуждений, связанных с этими концепциями сопрограмм и монад, которые люди делают и критикуют эти предложения:

8

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]