NFT Digital Art

Mehrere Werte aus einer Funktion in C++ zurückgeben – Moderne Ansätze mit C++23

Erfahren Sie, wie Sie in C++ mit den neuesten Standards mehrere Werte aus Funktionen zurückgeben können. Von std::pair über std::tuple bis hin zu std::expected und std::optional – moderne Techniken vereinfachen die Programmierung und verbessern die Fehlerbehandlung.

Mehrere Werte aus einer Funktion in C++ zurückgeben – Moderne Ansätze mit C++23

In der Programmiersprache C++ ist das Zurückgeben mehrerer Werte aus einer Funktion eine immer wiederkehrende Herausforderung. Klassische Ansätze mussten oft mit Umwegen wie der Verwendung von Zeigern oder Referenzen arbeiten, um mehrere Ergebnisse zu übermitteln. Mit der Weiterentwicklung des C++-Standards, insbesondere durch die Neuerungen in C++17 und C++23, ist dieser Prozess deutlich eleganter und komfortabler geworden. Moderne Funktionen und Datentypen erlauben es Entwicklern, mehrere Rückgabewerte auf unkomplizierte und lesbare Weise zu handhaben, was die Codequalität und Wartbarkeit erheblich verbessert. In diesem Beitrag werden die wichtigsten Methoden zum Rückgeben mehrerer Werte in C++ vorgestellt, von einfachen Paaren bis hin zur robusten Fehlerbehandlung mit std::expected. Der wohl bekannteste Weg, um zwei Werte aus einer Funktion zurückzugeben, führt über die Nutzung von std::pair.

Dieses in der Standardbibliothek verankerte Template erlaubt es, zwei heterogene Werte zusammenzufassen. Möchte man beispielsweise eine Division durchführen und sowohl das Ergebnis als auch eine Fehlernachricht zurückliefern, kann man eine Funktion schreiben, die ein std::pair<int, std::string> zurückgibt. Sollte der Divisor null sein, so liefert die Funktion eine Fehlermeldung, andernfalls das Ergebnis der Division und ein Erfolgsstring. Diese Methode ist einfach und klar, sie hat jedoch den Nachteil, dass sie nur zwei Werte kapseln kann und die Bedeutung der einzelnen Werte nicht durch eigene Typen oder Struktur hervorgehoben wird. Für den Fall, dass mehr als zwei Werte zurückgegeben werden sollen, bietet sich std::tuple an. Dieses Template ist eine Art Container, der eine beliebige Anzahl an Werten unterschiedlicher Typen halten kann.

Mit C++17 kam zudem die Unterstützung für strukturierte Bindungen, die es ermöglicht, eine solche Rückgabe direkt in verständliche Einzelvariablen zu zerlegen. Dadurch wird der Code wesentlich lesbarer, da die einzelnen Rückgabewerte explizit benannt werden können. Ein typisches Anwendungsbeispiel ist erneut die Fehlerbehandlung bei Berechnungen: Die Funktion liefert ein std::tuple mit Ergebnis, Statuscode und einer eventuellen Meldung. Eine häufige Fragestellung bei der Rückgabe mehrerer Werte in C++ betrifft auch die flexible Handhabung von Datentypen. Indem man Templates und Konzepte nutzt, kann die Funktion so gestaltet werden, dass sie für verschiedene Datentypen funktioniert, ohne dass man sie mehrfach überladen muss. C++20 bringt die Möglichkeit, mit Konzepten zu arbeiten, die zur Compilezeit sicherstellen, dass nur passende Typen übergeben werden. Das sorgt für klaren und sicheren Code.

So kann eine Division beispielsweise für alle ganzzahligen Typen definiert werden, die das Konzept std::integral erfüllen. Versucht man eine Division mit Gleitkommazahlen, erfolgt ein aussagekräftiger Compilerfehler. C++23 hat weitere Verbesserungen gebracht, die für das Thema der Rückgabe mehrerer Werte relevant sind. Die neue Funktion std::println macht die Ausgabe von Werten sehr einfach und zugleich effizient, da sie formatierte Ausgaben direkt erlaubt. Zudem wurde das sogenannte "Ignorieren von Rückgabewerten" dank der Einführung des Unterstrichs (_) in strukturierte Bindungen vereinfacht. Wenn ein Rückgabewert nicht interessiert, kann er mit _ abgefangen werden, ohne eine unnötige Variable deklarieren zu müssen – das steigert die Klarheit und verhindert ungenutzte Variablen. Neben den klassischen Containern ist die deklarative Fehlerbehandlung ein zentraler Aspekt bei der Rückgabe mehrerer Werte.

Bislang wurde dafür oft die Verwendung von Ausnahmen (Exceptions) propagiert, was in vielen Kontexten jedoch zu weniger übersichtlichem und schwer wartbarem Code führt. Die neu eingeführte Klasse std::expected (seit C++23) bietet eine elegante Alternative: Sie erlaubt es, entweder einen Wert oder eine Fehlermeldung zurückzugeben, während der Aufrufer klar und einfach prüfen kann, ob die Operation erfolgreich war. Bei Fehlern kann die Fehlermeldung abgefragt werden, bei Erfolg der korrekte Wert. Diese Vorgehensweise ist stark von funktionalen Sprachen oder der Programmiersprache Rust inspiriert und fördert das Schreiben von robustem Code. Die Nutzung von std::expected bietet neben besserer Lesbarkeit auch Performancevorteile, da die Ausnahmebehandlung entfällt. Stattdessen handelt es sich um einen normalen Rückgabewert, der situationsabhängig verwertet wird.

Dadurch wird der häufig kritisierte Overhead von Ausnahmen umgangen, was besonders in Systemprogrammen und sicherheitskritischen Anwendungen von großer Bedeutung ist. Eine Alternative zu std::expected stellt std::optional dar. Dieser Container kann entweder einen Wert enthalten oder leer sein. Das eignet sich besonders, wenn nur der Wert selbst optional ist, ohne eine detaillierte Fehlerbeschreibung zu liefern. Die Flexibilität von std::optional macht es zu einem nützlichen Werkzeug für einfache Fälle, allerdings ist es geringfügig weniger aussagekräftig als std::expected, wenn es um Fehlerhandling geht. Für Situationen, in denen lediglich angegeben werden muss, ob ein Wert vorhanden ist oder nicht, reicht std::optional aus. Zusammenfassend lässt sich sagen, dass die Möglichkeiten, in C++ mehrere Werte aus einer Funktion zurückzugeben, sich dank moderner Sprachstandards erheblich erweitert haben.

Vom einfachen std::pair über flexible std::tuple, strukturierte Bindungen, und die Einführung von std::expected und std::optional bis hin zu syntaktischen Erleichterungen wie dem Ignorieren von Rückgabewerten – diese Werkzeuge erlauben es Entwicklern, klaren, effizienten und robusten Code zu schreiben. Damit lösen sich alte Probleme im Umgang mit Funktionsrückgaben auf und neue Anwendungsbereiche werden spielend leicht abgedeckt. Die Wahl der richtigen Technik hängt dabei stark vom jeweiligen Anwendungsfall ab. Für einfache Kombinationen von zwei oder drei Werten sind std::pair und std::tuple bestens geeignet. Bei komplexerer Fehlerbehandlung sollten std::expected oder std::optional bevorzugt werden. Neben diesen modernen Ansätzen ist es wichtig, den Code stets lesbar und wartbar zu halten, sodass spätere Entwickler oder man selbst die Logik schnell nachvollziehen kann. Abschließend lässt sich festhalten, dass C++ mit jeder Sprachversion ein Stück benutzerfreundlicher wird.

Die Möglichkeit, mehrere Werte mit minimalem Aufwand zurückzugeben, führt zu schlankeren Schnittstellen, weniger Fehlerquellen und besser strukturierter Fehlerbehandlung. Für alle Programmierer, die auf Performance, Sicherheit und sauberen Code Wert legen, empfiehlt es sich, sich mit diesen Techniken auseinanderzusetzen und sie in eigenen Projekten zu nutzen. Das Resultat ist ein moderner C++-Code, der den Ansprüchen heutiger Softwareentwicklung mehr als gerecht wird.

OKX Partnerinhalte

Registrieren Sie sich bei OKX und erhalten Sie Ihren Willkommensbonus

OKX ist eine Plattform für Spot- und Futures-Handel, P2P-Tausch und Krypto-Sparpläne. Ein neues Konto über diesen Link eröffnet Zugang zum Willkommensbonus-Programm: bis zu 10.000 USDT für Ihre ersten Schritte an der Börse.

Konto erstellen und Bonus erhalten →

18+ · Partnerlink. Kryptowährungen sind volatil: Sie können Ihre Einlage verlieren.

Als Nächstes
Summit Trail Advisors: Neue Führung für weiteres Wachstum im Ultra-High-Net-Worth-Bereich
Samstag, 14. November 2026. Summit Trail Advisors: Neue Führung für weiteres Wachstum im Ultra-High-Net-Worth-Bereich

Summit Trail Advisors hat einen bedeutenden Schritt unternommen, um sein Wachstumspotenzial im Bereich der Vermögensverwaltung für ultra-high-net-worth individuals (UHNWIs) weiter auszuschöpfen. Die Ernennung eines neuen Präsidenten markiert eine strategische Weichenstellung, die darauf abzielt, die Position des Unternehmens auf dem stark umkämpften Markt zu stärken und neue Maßstäbe in der Betreuung vermögender Privatkunden zu setzen.

Brutalist Framework – Das Open Source Werkzeug für den brutalen Webdesign-Stil
Samstag, 14. November 2026. Brutalist Framework – Das Open Source Werkzeug für den brutalen Webdesign-Stil

Der Brutalist Webdesign-Stil hat sich in den letzten Jahren als Gegenbewegung zu übermäßig gestalteten, hochgradig verfeinerten Weboberflächen etabliert. Sichtbar wird eine ästhetische Rückkehr zu einer roheren, funktionalen Gestaltung, die bereits in den Anfangstagen des Internets vorherrschte.

Wie viele Satelliten umkreisen die Erde? Ein Blick auf die wachsende Satellitenflotte und ihre Auswirkungen
Samstag, 14. November 2026. Wie viele Satelliten umkreisen die Erde? Ein Blick auf die wachsende Satellitenflotte und ihre Auswirkungen

Seit dem Start von Sputnik im Jahr 1957 hat sich die Anzahl der Satelliten, die um die Erde kreisen, dramatisch verändert. Was einst mit einigen wenigen Satelliten begann, hat sich inzwischen zu einer Schwarmbewegung von über zehntausend aktiven Satelliten entwickelt, die in verschiedenen Umlaufbahnen ihren Dienst verrichten.

Tersa: Die offene Plattform für innovative KI-Workflows
Samstag, 14. November 2026. Tersa: Die offene Plattform für innovative KI-Workflows

In der heutigen digitalen Landschaft spielt Künstliche Intelligenz eine immer bedeutendere Rolle. Die Integration von KI in unterschiedlichste Branchen eröffnet neue Möglichkeiten, Prozesse zu automatisieren, Daten präzise auszuwerten und innovative Produkte zu entwickeln.

Citi bleibt zuversichtlich bei Microsoft: Warum die Aktie trotz Entlassungen und Quartalsergebnissen attraktiv bleibt
Samstag, 14. November 2026. Citi bleibt zuversichtlich bei Microsoft: Warum die Aktie trotz Entlassungen und Quartalsergebnissen attraktiv bleibt

Microsoft ist zweifellos eines der führenden Technologieunternehmen weltweit und befindet sich kontinuierlich im Fokus von Anlegern, Analysten und der breiten Öffentlichkeit. Nach der Veröffentlichung der jüngsten Quartalsergebnisse und der Ankündigung von Entlassungen hat die Investmentbank Citi ihre positive Haltung gegenüber Microsoft bestätigt.

Die verbotene Eisenbahnstrecke Wien-Pyongyang: Eine außergewöhnliche Zugreise ins abgeschottete Nordkorea
Samstag, 14. November 2026. Die verbotene Eisenbahnstrecke Wien-Pyongyang: Eine außergewöhnliche Zugreise ins abgeschottete Nordkorea

Die Faszination für Eisenbahnreisen verbindet viele Menschen weltweit. Für den österreichischen Bahnenthusiasten Helmut wurde dieses Interesse zur Lebensaufgabe, als er entschied, eine Reise quer über den eurasischen Kontinent bis nach Nordkorea zu unternehmen.

Warum die Krypto-Branche optimistisch in die Zukunft blickt: Die Revolution ist im Gange
Samstag, 14. November 2026. Warum die Krypto-Branche optimistisch in die Zukunft blickt: Die Revolution ist im Gange

Die vergangenen Jahre waren für die Kryptowährungsbranche von Unsicherheiten geprägt. Regulatorische Hürden, volatile Märkte und unterschätzte Technologien sorgten immer wieder für Rückschläge und Skepsis.

Weitere Artikel zum Thema
Die faszinierende Genealogie von Papst Leo XIV: Eine Reise durch Kulturen und Jahrhunderte
Samstag, 14. November 2026. Die faszinierende Genealogie von Papst Leo XIV: Eine Reise durch Kulturen und Jahrhunderte

Papst Leo XIV, bekannt als Robert Francis Prevost, ist eine Persönlichkeit, deren Herkunft mehr ist als nur ein genealogisches Rätsel – sie ist ein Spiegelbild der einzigartigen und vielfältigen Geschichte Amerikas und der Neuen Welt. Seine familiären Wurzeln reichen mehrere Jahrhunderte zurück und verbinden unter anderem spanische Edelpersonen, italienische Immigranten, französisch-kanadische Siedler sowie afro-amerikanische Vorfahren.

Bitcoin Angebotsverknappung: Wie „uralte“ Halter die frisch geschürften BTC übertreffen
Samstag, 14. November 2026. Bitcoin Angebotsverknappung: Wie „uralte“ Halter die frisch geschürften BTC übertreffen

Der Bitcoin-Markt befindet sich in einer fundamentalen Umbruchphase, getrieben von einer bemerkenswerten Entwicklung in der Angebotsseite der Kryptowährung. Der Anteil der sogenannten „uralten“ Bitcoin-Halter – jene, die ihre Coins seit mehr als zehn Jahren besitzen – wächst in einem Tempo, das die Anzahl der täglich neu geschürften Bitcoins übertrifft.

Rostin Behnam: CFTC-Vorsitzender erklärt nur Bitcoin als Ware – Ethereum bleibt außen vor
Freitag, 13. November 2026. Rostin Behnam: CFTC-Vorsitzender erklärt nur Bitcoin als Ware – Ethereum bleibt außen vor

In einer kürzlich veröffentlichten Stellungnahme sorgte Rostin Behnam, der Vorsitzende der Commodity Futures Trading Commission (CFTC), für Aufsehen, als er erklärte, dass nur Bitcoin als Rohstoff anerkannt werden könne, während Ethereum und andere Kryptowährungen nicht in dieselbe Kategorie fallen. Diese Aussage wirft Fragen auf und spiegelt die anhaltende Debatte über die Regulierung von Kryptowährungen wider, die in den letzten Jahren immer lauter geworden ist.

Kryptowährungen im Glücksspielmodus: Wie Memecoin-Erwähnungen ein Jahreshoch erreichen und den Markt prägen
Samstag, 14. November 2026. Kryptowährungen im Glücksspielmodus: Wie Memecoin-Erwähnungen ein Jahreshoch erreichen und den Markt prägen

Der Kryptomarkt erlebt eine bemerkenswerte Verschiebung der Anlegermentalität hin zu einem risikofreudigeren, fast spielerischen Umgang mit digitalen Vermögenswerten. Wie aktuelle Analysen von Santiment zeigen, haben sich die Online-Diskussionen rund um Memecoins im Jahr 2025 auf ein neues Hoch gesteigert, was die intensive Begeisterung und das gesteigerte Interesse an diesen hochspekulativen Token verdeutlicht.