协程的临界区很麻烦。比如需要序列处理 容器里的使用元素:
for auto& ele : container {
co_await myfunction(ele);
}
如果 myfunction 挂起期间 ,别的线程要修改 container ,就非常麻烦 ,resume回来,如果容器修改了,就崩了。加锁,就严重和协程理念违背了
【 在 hgoldfish 的大作中提到: 】
: 如果只有值的话,const 就够了,出现 constexpr 就是现代 c++ 里面一大堆 lambda, c++ 自己不知道这些函数能够在编译期计算出来。所以需要程序员在代码里面给点提示。
: auto 也是因为很多 lambda 的类型已经不是程序员可以写出来的,要么是太长了,要么是跟着泛型编程传入的参数而变化,所以只好用 auto 让编译器自动推断。
: 泛型编程当年也是毒瘤。要是早点有 any,或者有 object 基类,学 Java 把 int 打包到 Integer 里面后面就不会发明这么多语法了。更不会出现 concept 这么复杂的东西。
: ...................
--
修改:Algoquant FROM 14.127.25.*
FROM 14.127.25.*