gpt4 book ai didi

c++ - 是否有 std::once_flag 的 polyfill?

转载 作者:太空宇宙 更新时间:2023-11-04 13:03:10 28 4
gpt4 key购买 nike

在 C++ 程序中,我正在使用一个使用 std::once_flag 的库,但它看起来像编译器 (arm-none-eabi-g++)不支持那个。这个 std::once_flag 有 polyfill 吗?

我在 Code Review 上看到了这个:https://codereview.stackexchange.com/questions/117468/stdonce-flag-and-stdcall-once-implementation但我想知道是否有官方的 polyfill。

polyfill 是否支持多线程并不重要,因为我的目标设备无论如何都不支持它。

最佳答案

没有所谓的“官方”polyfill。该标准是语言的官方定义,由编译器来实现。如果您不能使用 GCC 4.8(第一个实现“完整”C++11 的 GCC),那么您将不得不使用自己或他人编写的代码尽可能地重现其行为。

(您的问题可能不是源于 GCC 版本,而是源于特定的端口/包/平台;但是,由于您没有告诉我们工具链或构建命令的名称/版本,或者你遇到的实际问题,我会简单地假设这不是这里的情况。)

因此,您找到的代码就是您所拥有的。但是,您应该记住您的程序会有未定义的行为。理想情况下,您将升级编译器或切换回与 C++03 兼容的编码。我个人建议在完全使用 C++11 之前,重新使用 Boost.Thread

或者,您知道,只是不要使用 std::once_flag,它是 std::call_once 的辅助结构,它都是关于多线程的……你声称你的设备不支持它。

关于c++ - 是否有 std::once_flag 的 polyfill?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43399723/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com