Warum funktioniert diese Arbeit:Wie bekomme ich -std = C++ 11 mit libstdC++?
#include <regex>
int main() {
return 0;
}
Zusammengestellt als:
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
Wenn ich stdlib
erlauben libc++
dann werden es kompiliert. Regex ist c++11
, aber clang
scheint kein Problem mit beiden -std=c++11 -stdlib=libstdc++
per se zu haben. Auf meinem Rechner sieht es zumindest so aus, als könnte ich etwas in /usr/include/regex.h
verwenden, aber das ist kein Standard, und außerdem gibt es andere Dinge als Regex, die ich gerne benutzen würde (z.B. std :: to_string).
Der Grund dafür gekommen ist, weil ich auf eine 3rd-Party-Bibliothek verknüpfen möchte (für die ich die Quelle nicht haben), die als std::string
und nicht std::__1::basic_string
halten wird, aber mein Code verwendet std::regex
und std::to_string
. Ich bin mir nicht sicher, ob ich eine Abhängigkeit von Boost einführen möchte.
verwenden Vielleicht ist Ihre libstC++ nicht C++ 11 kompatibel? –
Ich bin OSX 10.10.5, also würde ich denken, Apple wäre auf Aufgabe ... – amos
[This] (http://stackoverflow.com/q/15853893/3425536) könnte helfen. – emlai