## C++ 协程:从 Unity 的经验及实用方法 尽管 C++ 协程已经可用六年,但由于其底层特性以及缺乏清晰的、超越基本计算的实用示例,尚未得到广泛应用。作者从 Unity 在 C# 中利用协程实现游戏效果(特别是淡入淡出和动画等行为序列)中获得了启发。 虽然 Unity 的实现依赖于历史性的“技巧”(无等待地 yield),这是由于最初 C# 的限制,但它突出了协程在管理有状态操作序列方面的强大功能。与复杂的状态机或函数对象方法相比,协程为诸如所展示的“TimeWarp”示例之类的任务提供了更简洁、更易读的解决方案。 作者展示了一个简单的、Unity 风格的 C++ 协程执行器,代码量少于 100 行。这种方法利用 `co_yield`,提供了一个功能性的效果系统,而无需 C++26 中预期的 `co_await` 和自定义调度器带来的复杂性。此外,这种模式可以扩展为并行生成可渲染对象,为游戏开发创建一个灵活高效的系统。 关键在于,专注于生成器风格的协程 (`co_yield`) 即使在完全支持 `co_await` 之前也能立即带来价值,为将它们集成到 C++ 项目中提供了令人信服的理由。
## Meta被判支付3.75亿美元儿童安全诉讼赔偿金
新墨西哥州法院判令Meta(Facebook、Instagram和WhatsApp的母公司)支付3.75亿美元,原因是其误导用户关于其平台对儿童的安全性。陪审团裁定Meta应对儿童接触有害内容负责,包括性暴露内容和与掠夺者的接触。
此案由新墨西哥州总检察长提起,提供了内部Meta文件和举报人证词等证据,揭示了该公司意识到这些风险,并据称忽视了警告。具体而言,研究表明,很大一部分Instagram用户接触到了不想要的性内容。
Meta计划上诉,并重申其对在线安全的承诺,同时强调内容审核的挑战。然而,这一判决具有重要意义,是各州首次成功起诉Meta涉及儿童安全问题。 此裁决正值美国各地出现许多类似诉讼,以及对社交媒体对年轻人的影响持续受到关注。
## 核武器险些引爆:摘要
自原子时代开始,意外核爆的潜在可能性就一直令人担忧。埃里克·施洛瑟即将出版的书籍《指挥与控制》探讨了这一风险,并以一份最近解密的文件为重点,该文件详细描述了1961年发生在北卡罗来纳州戈兹伯勒市的B-52轰炸机坠毁事件。两枚氢弹被抛弃,文件显示其中一枚险些引爆——仅被一个低电压开关阻止。
这起事件以及其他类似事件凸显了核武器固有的悖论:它们必须*始终*在需要时发挥作用,但*绝不能*发生故障。桑迪亚国家实验室的影像资料证实了这场近乎灾难,展示了炸弹距离完全启动序列有多近。专家承认历史上发生过许多“险些错过”的情况,有时源于令人惊讶的简单机械故障。
戈兹伯勒事件表明,即使采取安全措施,由于不可预见的情况也可能发生事故——在这种情况下,飞机的剧烈解体激活了炸弹的布雷系统。虽然现代武器更安全,但担忧依然存在。施洛瑟主张优先考虑核安全,这一立场在当前的政治氛围中可能不受欢迎,但鉴于即使一次意外引爆的灾难性后果,这一点至关重要。