不支持 pragma STDC FENV_ACCESS ON

Ori*_*ent 5 c++ floating-point pragma c++11 c++14

我尝试稍微修改一下文章中的示例:

#include <iostream>
#include <cfenv>

#pragma STDC FENV_ACCESS ON

int main()
{
    std::feclearexcept(FE_ALL_EXCEPT);
    //int r = std::feraiseexcept(FE_UNDERFLOW | FE_DIVBYZERO);
    double x = 1.0;
    double y = 0.0;
    double result{};
    asm volatile ("fldl %1\n"
                  "fdivl %2\n" : "=%t"(result) : "m"(x), "m"(y) : "memory");
    std::cout << result << std::endl;
    int e = std::fetestexcept(FE_ALL_EXCEPT);
    if (e & FE_DIVBYZERO) {
        std::cout << "division by zero\n";
    }
    if (e & FE_INEXACT) {
        std::cout << "inexact\n";
    }
    if (e & FE_INVALID) {
        std::cout << "invalid\n";
    }
    if (e & FE_UNDERFLOW) {
        std::cout << "underflow\n";
    }
    if (e & FE_OVERFLOW) {
        std::cout << "overflow\n";
    }
    return EXIT_SUCCESS;
}
Run Code Online (Sandbox Code Playgroud)

但我收到警告(对于clang++ ,但对于G++也一样):

warning: pragma STDC FENV_ACCESS ON is not supported, ignoring pragma [-Wunknown-pragmas]
#pragma STDC FENV_ACCESS ON
             ^
1 warning generated.
Run Code Online (Sandbox Code Playgroud)

另一篇文章报道说,pragma 是对待所谓的C 标准 pragma的类,但前面提到的文章确实包含使用 pragma 的代码。

是否允许在C++代码中使用 pragma ?C++<cfenv>中有头文件。它暗示这个浮点环境可以在C++中使用。但本文报告了浮点环境的实现相关性。这涉及到C++了吗?