2016-12-22 6 views
5

Wie kann ich std::variant in g++ verwenden? Warum gibt es std::variant nicht in std::experimental (obwohl std::optional ist)? Welche Version von g++ benötige ich? Ich bevorzuge es, nicht boost zu verwenden, und ich möchte nur Standardbibliothek verwenden.Verwenden von std :: variant in g ++

Edit: es scheint nur g++ 7 unterstützt std::variant. Dann ist meine Frage: Wann wird es veröffentlicht und welche Probleme kann ich bei der Verwendung der experimentellen Version feststellen?

+0

Sie sollten die neueste Version von 'g ++' –

+0

@BasileStarynkevitch verwenden, was ist die Versionsnummer? Wie kann ich es bekommen? –

+0

Führe 'g ++ -v' oder' g ++ --version' in einem Terminal aus –

Antwort

3

This page sagt, dass GCC 7 std::variant hat.

+0

Ja, ich verstehe. Wie kann ich es auf Ubuntu installieren? Oder wie ich herausfand, wurde GCC 7 noch nicht veröffentlicht, wann wird es sein? –

+1

@AleksandrTukallo: Einfach mit Download, konfigurieren; machen; Installieren Funktioniert perfekt! – Klaus

+0

@Klaus danke! Aber welche Probleme kann ich bei der Verwendung vor der Veröffentlichung auftreten? Ist es o.k? –

3

GCC hat eine info page, wo Sie überprüfen können, welche Sprachfunktion mit welcher Version implementiert wurde. Es sieht so aus, als ob variant noch nicht implementiert ist.

+0

Laut der Tabelle' std :: optional' ist auch nicht implementiert, obwohl ich es in meinem 'g ++ 5.4' verwenden kann: [experimental optional] (http://en.cppreference.com/w/cpp/experimentell/optional/optional). –

+1

Es gibt immer [Boost.Variant] (http://www.boost.org/doc/libs/1_62_0/doc/html/variant.html) –

+0

@ user2393256 Zeigt der Link den Standard-Bibliotheksstatus oder nur die Kernsprachenfunktionen an? –

Verwandte Themen