假设X
and Y
是适合这种用途的类型,是否可以使用 UBstd::start_lifetime_as<X>
在一个线程中的内存区域上作为一种类型并使用std::start_lifetime_as<Y>
在另一个线程中完全相同的内存上?标准对此有什么规定吗?如果不正确,正确的解释是什么?
没有数据竞赛从这样的调用中,因为它们都没有访问任何内存位置,但是因为(没有同步)两个线程都无法知道另一个线程尚未结束lifetime通过将其存储重用于其他类型的对象来创建其所需对象,则无法使用创建的对象。 (一个线程可以使用它们的“偶数”并不存在,因为它“最后”:有一个执行没有执行,因此依赖它会产生未定义的行为。)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)