错误:‘std::chars_format’未声明

4
我的代码的最小部分如下:
#include <charconv>
#include <string_view>
#include <cmath>

int main() {

    return 0;
}

double strparse(std::string_view s, int field, int a, int b) {
    double candidates[3];
    auto format = std::chars_format::fixed;
    return 0;
}

然而,在以下命令下编译它:
g++ -std=c++17 bob.cpp

使用g++ 9.2.1时,返回:
bob.cpp: In function ‘double strparse(std::string_view, int, int, int)’:
bob.cpp:12:24: error: ‘std::chars_format’ has not been declared
   12 |     auto format = std::chars_format::fixed;
      |                        ^~~~~~~~~~~~

我不确定为什么这个代码无法编译 - 有人可以帮忙吗? 演示链接

4
你的g++版本是什么?你的标准库(libstdc+++)的版本是多少? - NathanOliver
无法重现。 - Algirdas Preidžius
我编辑了我的问题。使用g++ 9.2.1和libstdc++.so.6。 - user438383
2
看起来GCC和clang只有部分支持:https://en.cppreference.com/w/cpp/compiler_support(搜索P0067R5) - NathanOliver
1
它在MSVC上运行正常,最新的clang和gcc失败了 https://godbolt.org/z/NymdC4 - Marek R
1个回答

2

它无法编译的原因是因为std::chars_format::fixed仅有部分GCC支持,详情请参考GCC支持情况


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接