Funktion mit zwei Rückgabewerten
-
Programmierst du mit einem C oder einem C++-Compiler?
-
Kann er auch nicht kennen. Du hast nen C Compiler. Versuchs mal mit Pointer statt Referenzen.
new und delete machst du am besten mit malloc und free.
-
Andere Möglichkeit: Du gibst ein pair zurück:
#include <utility> using namespace std; pair<int, double> foo() { return make_pair(302, 9.5); } int main() { pair<int, double> tmp = foo(); cout << tmp.first << ", " << tmp.second << endl; return 0; }
-
Auch wenn C++-Lösungen vielleicht nicht mehr gefragt sind - die Lösung, die IMHO am ehesten dran kommt, ist:
boost::tuple<unsigned char, unsigned char> foo(); unsigned char a, b; boost::tie(a, b) = foo();
-
operator void schrieb:
Auch wenn C++-Lösungen vielleicht nicht mehr gefragt sind - die Lösung, die IMHO am ehesten dran kommt, ist:
boost::tuple<unsigned char, unsigned char> foo(); unsigned char a, b; boost::tie(a, b) = foo();
Sagt dir das Sprichwort "Mit Kanonen auf Spatzen schießen" etwas?
-
operator void schrieb:
Auch wenn C++-Lösungen vielleicht nicht mehr gefragt sind
boost gehört nicht zum Standard. Eine C++ige Lösung mit pair oder Referenzen wurde doch genannt.
-
boost gehört nicht zum Standard.
Ja, gehört es nicht, aber es werden doch ständig boost Lösungen gepostet, mit der Argumentation, es sei "quasi" Standard bzw. wird in Zukunft Standard sein. Also ist es doch völlig in Ordnung, sowas zu posten, wenns weiterhilft.
-
Sicher... aber die Boost-Lösung ist nicht die einzige, die man als C++ Lösung bezeichnen kann.
-
boost::tuple ist immerhin auf dem Weg in den Standard. Und auch wenn es pair schon gibt (und das hier ja reicht), tie nicht.
Was nicht heißt, dass die Lösung in jedem Fall die beste ist. Aber da der OP sein Problem nicht so genau beschrieben hat, habe ich eben das genommen, was IMHO am direktesten rankommt. Dass das die einzige C++-ige Lösung sei, habe ich nicht behauptet. Der Nebensatz bezog sich darauf, dass es ein paar Postings vorher so klang, als hätte er nur einen C-Compiler zur Verfügung
-
operator void schrieb:
Dass das die einzige C++-ige Lösung sei, habe ich nicht behauptet. Der Nebensatz bezog sich darauf, dass es ein paar Postings vorher so klang, als hätte er nur einen C-Compiler zur Verfügung
Ah, falsch verstanden, sorry.
-
Ich finde die boost Lösungen immer ganz gut, dann sehe ich mal was man mit der Library noch alles machen kann. Bis jetzt nutze ich nämlich nur die smart_ptr, die allerdings sehr gerne!