首页 > 解决方案 > 带有 CLI 标志的 VS2017 中的 std::atomic

问题描述

微软文档网站说 std::atomic 对于使用 CLR 标志编译的项目被阻止:https ://docs.microsoft.com/en-us/cpp/standard-library/atomic 我不知道它并使用了 atomic非 CLR 项目中的非托管类中的标头,但此标头包含在另一个 CLR 项目 cpp 文件中,其中分配了非托管类实例以供在托管类中使用。它编译得很好。为什么?据我了解,它不应该工作。或者微软已经修复了它但没有更新 wiki?

标签: stlvisual-studio-2017c++-clic++17atomic

解决方案


好吧,我检查了标题,只有一个面向 CLR 的限制:

 #ifdef _M_CEE_PURE
 #error <atomic> is not supported when compiling with /clr:pure.
 #endif /* _M

这意味着它实际上应该与现代 CLI 一起使用


推荐阅读