Coroutines的“措辞”(文件C ++ P0057R5)由Gor Nishanov,Jens Maurer,Richard Smith和Daveed Vandevoorde,见P0057r5,谈论了很多关于“函数的暂停上下文”并直接指向“ 5.3.8"
这定义在哪里?
我在问,因为对于一个过程,有些时候某些代码应该或者应该被要求在某些地方。就像Notify(我认为那样)在Java中应该被要求成为最后的陈述(Per Brinch Hansen(1999)的“Java的不安全的平行”)。我想知道函数的暂停上下文是否在这样的位置?
答案 0 :(得分:1)
正好在论文中它所定义的位置:
await-expression 只能出现在 compound-statement 中可能已评估的表达式中 处理程序(15)之外的 function-body 。在声明声明或中 for-init-statement 的简单声明(如果有), await-expression 只出现在 声明声明或简单声明的初始值设定项。 await-expression不得 出现在默认参数中(8.3.6)。 await-expression 可以使用的函数中的上下文 出现称为函数的暂停上下文。