2014-04-10 12 views
7

Ich möchte einige der neuen Funktionen ausprobieren, die es zu den C++ 2014 revision wie std::make_unique und std::filesystem Funktionen machen. Ich benutze ubuntu 14.04 und GCC/G ++ 4.8 (mit libstdC++ - 4.8-dev installiert), und das Flag -std=c++1y gesetzt. Aber es gibt keine std::make_unique wenn <tr1/memory>, und keine <experimental/...> Header. Was muss ich tun, um einige dieser neuen Funktionen nutzen zu können?C++ 14 TS-Funktionalität und GCC 4.8

Danke!

Antwort

13

<tr1/memory> ist kein C++ 14 Standard-Header. Sie wollen einfach <memory>. Gleich für <dynarray>.

Jedoch werden beide in GCC 4.8 nicht unterstützt. Sie müssen auf GCC 4.9 oder clang 5 upgraden.

Der GCC-Compiler-Unterstützungsstatus für C++ 1y kann on the Language Features status page und die Bibliotheksunterstützung auf der Library Support status page überprüft werden.

+0

Ich habe das schon versucht, aber ich habe keine '' Header (ich denke, weil es nicht auf die C++ 14 machen wird). Aber '' schlägt immer noch fehl, wenn Sie versuchen, 'std :: make_unique' zu ​​verwenden. Ich werde dann clang oder g ++ 4.9 versuchen. Irgendwelche Ratschläge, wie man einige TS-Eigenschaften wie oder nichts verwendet, wurde von den Compilerschreibern noch implementiert? – Athanase

+1

@Athanase g ++ 4.9 implementiert nicht 'std :: dynarray', aber' std :: make_unique' sollte in '' verfügbar sein. Es ist nicht in der Version 4.8 verfügbar. Nichts von '' wurde noch in g ++ implementiert. Die einzigen in g ++ 4.9 implementierten TS-Funktionen sind 'std :: optional' und' std :: string_view'. – Morwenn

+0

clang ist nur ein Compiler, die Standardbibliothek ist die, die mit gcc oder xcode oder Visual Studio ausgeliefert wird. Das llvm-Projekt besitzt ein neues [C++ library] (http://libcxx.llvm.org/) -Teilprojekt, aber es ist hauptsächlich für Linux oder Mac OSX im Moment. – galop1n

Verwandte Themen