Здравствуйте, Evgeny.Panasyuk, Вы писали: EP>Не пойму, то есть ты за то чтобы в этом случае auto вообще не использовать? Тогда это ортогонально struct vs tuple.
Я просто не могу представить реального случая, где бы подобный подход мог иметь смысл.
Если это обычная функция, возвращающая, например код ошибки, или результат исполнения, который "не поместился" в скалярный тип, то я не вижу смысла пихать определение структуры вовнутрь ее. За сомнительную экономию нескольких идентификаторов и пунктуаций мы получаем:
1. Кишки функции наружу.
2. Невозможность использовать этот тип где либо еще, объявлять его явно.
3. Необходимость лезть в реализацию функции для поиска ее возврата.
Лучше определить структуру явно в заголовке класса.
Если же это какое-то значимое данное, состав которого неочевидным образом определяется на момент компиляции тела функции, то без статической рефлексии или замены на туплы, мы просто не будем знать что с ней делать дальше. Поэтому это тоже не вариант.
Так в каком же случае это полезно?