Dlaczego nie działa to:Jak zdobyć -std = C++ 11 w/libstdC++?
#include <regex>
int main() {
return 0;
}
skompilowane jako:
clang++ -std=c++11 -stdlib=libstdc++ temp.cpp
temp.cpp:1:10: fatal error: 'regex' file not found
#include <regex>
^
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
Gdybym pozwalają stdlib
być libc++
następnie kompiluje. Regex to c++11
, ale clang
nie wydaje się mieć problemu zarówno z -std=c++11 -stdlib=libstdc++
per se. Na moim komputerze przynajmniej wygląda na to, że jest coś, co mógłbym użyć w /usr/include/regex.h
, ale to nie jest standard, a poza tym są rzeczy inne niż regex, których chciałbym użyć (np. Std :: to_string).
Powodem tego ma pochodzić dlatego chciałbym odwołuje się do biblioteki 3rd party (dla których nie mam źródła), która jest przestrzegana jako std::string
i nie std::__1::basic_string
, ale mój kod wykorzystuje std::regex
i std::to_string
. Nie jestem pewien, czy chcę wprowadzić zależność od doładowania.
Może twój libstC++ nie jest zgodny z C++ 11? –
Jestem OSX 10.10.5, więc myślę, że Apple będzie na zadanie ... – amos
[This] (http://stackoverflow.com/q/15853893/3425536) może pomóc. – emlai