什么是C ++中的“函数的暂停上下文”

时间:2016-10-10 21:15:16

标签: c++ multithreading coroutine

Coroutines的“措辞”(文件C ++ P0057R5)由Gor Nishanov,Jens Maurer,Richard Smith和Daveed Vandevoorde,见P0057r5,谈论了很多关于“函数的暂停上下文”并直接指向“ 5.3.8"

这定义在哪里?

我在问,因为对于一个过程,有些时候某些代码应该或者应该被要求在某些地方。就像Notify(我认为那样)在Java中应该被要求成为最后的陈述(Per Brinch Hansen(1999)的“Java的不安全的平行”)。我想知道函数的暂停上下文是否在这样的位置?

1 个答案:

答案 0 :(得分:1)

正好在论文中它所定义的位置:

  

await-expression 只能出现在 compound-statement 中可能已评估的表达式中   处理程序(15)之外的 function-body 。在声明声明或中    for-init-statement 简单声明(如果有), await-expression 只出现在   声明声明简单声明的初始值设定项。 await-expression不得   出现在默认参数中(8.3.6)。 await-expression 可以使用的函数中的上下文   出现称为函数的暂停上下文