我正在尝试用C ++进行一些非常快速的转换,因为它使用了非常低级的逻辑,因此charconv似乎是一条路。问题是,当我尝试包括此标头然后调用std :: to_chars(...)时,找不到标头,也没有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- 包装纸 Ziel:x86_64-apple-darwin14.4.0 Konfiguriert MIT:../gcc-5.1.0/configure --enable-languages = c ++,fortran 线程模型:posix gcc版本5.1.0(GCC)
任何帮助表示赞赏!
答案 0 :(得分:3)
gcc 5.1已于2015年4月22日发布。
将to_chars
添加到C ++ 17标准的论文写于2016年。
您为什么期望gcc5会实现它?
[稍后:那也是添加了<charconv>
标头的论文]