当前位置:  开发笔记 > 编程语言 > 正文

如何获得-std = c ++ 11 w/libstdc ++?

如何解决《如何获得-std=c++11w/libstdc++?》经验,为你挑选了1个好方法。

为什么这不起作用:

#include 
int main() {
   return 0;
}

编译为:

clang++ -std=c++11 -stdlib=libstdc++ temp.cpp
temp.cpp:1:10: fatal error: 'regex' file not found
#include 
         ^
1 error generated.


clang++ --version
Apple LLVM version 7.0.0 (clang-700.1.76)
Target: x86_64-apple-darwin14.5.0
Thread model: posix

如果我能够stdlib成为libc++然后再编译.正则表达式c++11,但clang本身似乎没有问题-std=c++11 -stdlib=libstdc++.至少在我的机器上,它看起来像我可以使用的东西/usr/include/regex.h,但这不是标准的,除了我想使用的正则表达式以外的东西(例如std :: to_string).

这已经想出的原因是因为我想链接到第三方库(对此我没有源),这是符合作为std::string,而不是std::__1::basic_string,但我代码使用std::regexstd::to_string.我不确定是否要引入对boost的依赖.



1> Miles Budnek..:

Apple发布了一个非常旧版本的libstdc ++和OS X(我认为是4.2.1).该版本并不完全支持C++ 11,因此您需要使用更新的版本std::regex.

推荐阅读
k78283381
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有