为什么在带有 gcc 5 的 macos Mojave 10.14 中缺少 charconv header?
Why is charconv header missing in macosx Mojave 10.14 with gcc5?
我正在尝试用 C++ 进行一些非常快速的转换,charconv 似乎是可行的方法,因为它使用了非常低级的逻辑。问题是,当我尝试包含此 header 然后调用 std::to_chars(...) 时,找不到 header,std 也没有 'to_chars'成员。我更新并重新安装了 gcc,但这个问题仍然存在。现在我看到一些线程说我应该以某种方式更新 libc++17,但它们对我应该做什么不是很具体,因为 MacOS 的情况有点不同。
一些代码来说明库及其用途:
#include <iostream>
#include <typeinfo>
#include <charconv> //error: 'charconv' file not found
struct to_chars_result{
char *str;
std::errc err;
};
int main(int argc, const char * argv[]) {
std::string str("12Test");
auto result = std::to_chars(str.data(), str.data()+str.size(), 12345); //No
//member named 'to_chars' in namespace 'std'.
return 0;
}
至于 gcc -v 命令输出:
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/local/libexec/gcc/x86_64-apple-darwin14.4.0/5.1.0/lto-
wrapper
Ziel: x86_64-apple-darwin14.4.0
Konfiguriert mit: ../gcc-5.1.0/configure --enable-languages=c++,fortran
Thread-Modell: posix
gcc-Version 5.1.0 (GCC)
感谢任何帮助!
gcc 5.1 于 2015 年 4 月 22 日发布。
将to_chars
添加到C++17标准的论文写于2016年。
为什么你认为 gcc5 会实现它?
[后来:那篇论文也加了<charconv>
header
我正在尝试用 C++ 进行一些非常快速的转换,charconv 似乎是可行的方法,因为它使用了非常低级的逻辑。问题是,当我尝试包含此 header 然后调用 std::to_chars(...) 时,找不到 header,std 也没有 'to_chars'成员。我更新并重新安装了 gcc,但这个问题仍然存在。现在我看到一些线程说我应该以某种方式更新 libc++17,但它们对我应该做什么不是很具体,因为 MacOS 的情况有点不同。
一些代码来说明库及其用途:
#include <iostream>
#include <typeinfo>
#include <charconv> //error: 'charconv' file not found
struct to_chars_result{
char *str;
std::errc err;
};
int main(int argc, const char * argv[]) {
std::string str("12Test");
auto result = std::to_chars(str.data(), str.data()+str.size(), 12345); //No
//member named 'to_chars' in namespace 'std'.
return 0;
}
至于 gcc -v 命令输出:
COLLECT_GCC=gcc COLLECT_LTO_WRAPPER=/usr/local/libexec/gcc/x86_64-apple-darwin14.4.0/5.1.0/lto- wrapper Ziel: x86_64-apple-darwin14.4.0 Konfiguriert mit: ../gcc-5.1.0/configure --enable-languages=c++,fortran Thread-Modell: posix gcc-Version 5.1.0 (GCC)
感谢任何帮助!
gcc 5.1 于 2015 年 4 月 22 日发布。
将to_chars
添加到C++17标准的论文写于2016年。
为什么你认为 gcc5 会实现它?
[后来:那篇论文也加了<charconv>
header