gpt4 book ai didi

c++ - fatal error : 'charconv' file not found in clang 6. 0 与 -std=c++17

转载 作者:行者123 更新时间:2023-12-03 06:55:29 26 4
gpt4 key购买 nike

最近想用from_chars来自 C++17。
看了 http://en.cppreference.com/w/cpp/utility/from_chars并在此页面上找到了该代码:

#include <iostream>
#include <charconv>
#include <array>

int main()
{
std::array<char, 10> str{"42"};
int result;
std::from_chars(str.data(), str.data()+str.size(), result);
std::cout << result;
}

不能被任何编译器编译。我试过了 http://en.cppreference.com/w/cpp/utility/from_chars在使用不同编译器的 Godbolt 上,但所有编译器都返回相同的错误:
<source>:2:10: fatal error: 'charconv' file not found
#include <charconv>
^~~~~~~~~~
1 error generated.
Compiler returned: 1

有人可以帮我解决这个问题吗?

(我尝试了 clang 6.0、gcc 7.3 和 msvc 19 但它们都返回了未找到“charconv”的错误)

最佳答案

根据 GCC's libstdc++ status page ,仅从 GCC-8.1 开始支持此 header 。您可以通过检测来避免使用此 header :

#if __has_include(<charconv>)
#include <charconv>
#else
/* implement some fallback */
#endif
或者只是更新你的编译器。此 godbolt example确认标题存在于 GCC-8.1 中。
如果您使用 Clang,请记住 Clang 使用 GCC 的 stdlibc++默认情况下。您需要更新 GCC 或切换到 Clang 的 libc++经过:
clang++ -std=c++17 -stdlib=libc++ main.cpp

关于c++ - fatal error : 'charconv' file not found in clang 6. 0 与 -std=c++17,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49639808/

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