Rozumné jazyky (včetně C++ od verze C++11) mají tuples.
Já si zpravidla definuju třídu nebo strukturu (třídu public). Třeba jen kvůli názvům proměnných i z nějakého dokumentačního důvodu.
Jinak zrovna pro dva argumenty šlo použit
std::pair<int,int>
make_pair(a,b)
pro tři se omezeně dalo použít
std::pair<std::pair<int, int>, int >
make_pair(make_pair(a,b),c)
pro čtyři pak ještě
std::pair<std::pair<int, int>, std::pair<int, int>>
make_pair(make_pair(a,b),make_pair(c,d))
Ono se pak blbě zjišťuje, co je první, druhý, třetí argument, takže jaký je problém s?
struct vysledek {
int soucet;
int pocet;
};
vysledek zpracuj(int[] vstup);
vypadá to hned čitelněji, hlavně pak při zpracování výsledku
A ono to je lepší používat i pro vstupní proměnné, třeba taková funkce co má 20 argumentů, to je fakt šílenost. Je lepší to narvat do struktury a taky si je mohu pojmenovat a vím co je co.
Oproti Jave je vysledek stále jen v C++ lokální proměnná, není třeba ji alokovat pomoci new