Есть время жизни 'a оно задано для ссылок, присланных в метод. У метода есть возвращаемое значение с тем же временем жизни. Все норм, ссылки на входе живут дольше метода и отдаются на выход. Если же создать в методе значение и вернуть ссылку на него (а там время жизни 'a у возвращаемого значения, которое из ссылок на входе) то компилер не допрет, что не надо сносить ссылку в конце работы метода, а снести ее когда 'a отживет, и выдаст компилер ошибку. Кажется компилер мог бы быть и поумнее.
@mudasobwa наоборот, он это запрещает, а я бы хотел отстрелить себе ноги самостоятельно :)
@mudasobwa хочу жрать память!
@mudasobwa я ведь в сигнатуре метода явно определяю время жизни, и для случая переданных снаружи ссылок возвращаемое значение может жить сколько они живут, а для случая созданного внутри значения ссылка это же внешнее время жить не может. Хотя с чего вдруг инструмент управления есть, а второй случай запрещен.