Здравствуйте, Hоmunculus, Вы писали:
H>Почему не придумали типа такого?
H>
H>int/string/int* MyFunc()
H>{
H> int res1 = 5;
H> string res2 = “ssssss”;
H> int* res3 = (int*)malloc…;
H> return1 res1;
H> return2 res2;
H> return3 res3;
H>}
H>
Про turple тут уже сказали.
А именно так — а где все же выход из функции ? Ведь return тут вовсе не выход, а присваивание некоей скрытой переменной result1, result2...
А настоящий return будет лишь закрывающей фигурной скобкой. А если я хочу именно выйти из функции внутри какого-то if — else — for... ?
В интерпретаторе такое можно позволить. Пусть он отслеживает, каким result присваивались значения и при выходе проверяет, всем ли присвоено.
В компиляторе — нет. Совершенно ненужные накладные расходы.