Welche neuen Funktionen sind in C++17 erschienen? Überblick über die wichtigsten Änderungen und Beispiele
Hallo zusammen! Ich lerne C++ und versuche gerade, die neuen Standards zu verstehen. Zuvor habe ich hauptsächlich mit C++11 und C++14 gearbeitet, aber im Projekt sagten Kollegen, dass es Zeit ist, auf C++17 umzusteigen. Ich habe die Dokumentation geöffnet, und es gibt so viel Neues, dass mir der Kopf schwirrt.
Ich habe von structured bindings, if constexpr, std::optional und std::variant gehört. Aber wie funktioniert das alles in der Praxis? Zum Beispiel schreibe ich oft Code, bei dem ich entweder einen Wert oder einen Fehler aus einer Funktion zurückgeben muss. Früher habe ich Tupel oder Ausgabeparameter verwendet. Ich habe gehört, dass es in C++17 dafür std::optional gibt. Aber wie wendet man es richtig an? Und was ist "guaranteed copy elision"? Ich habe gehört, dass es die Rückgabe von Objekten beschleunigt, aber ich verstehe den Mechanismus nicht.
Außerdem interessiert mich, wie die Arbeit mit Tupeln und Paaren vereinfacht wurde. Früher musste man std::tie(a, b) = my_pair schreiben, um ein std::pair zu entpacken. Und jetzt kann man anscheinend auto [a, b] = my_pair schreiben. Funktioniert das wirklich?
Und die wichtigste Frage: was und