Объявление value
является ссылкой на константу std::vector<obj>
.
Ссылки, которые могут привязываться к временным ссылкам (links-to-const и rvalue-reference), могут продлить срок службы объекта, который они Ссылка при некоторых обстоятельствах, хотя, и это одно из тех обстоятельств. Это означает, что возвращаемое значение function
имеет время жизни, увеличенное до времени жизни value
.
Pre-C ++ 17, и теоретически можно избежать создания дополнительной копии из возвращаемого значения function
до value
(хотя каждый известный мне компилятор в любом случае удалил бы копию). Начиная с C ++ 17, гарантируется, что копия не будет сделана, поэтому продление срока службы, подобного этому, больше не служит цели.