Кто-нибудь знает, почему следующий код не выдает предупреждения?
struct Foo { int a = 1; }; struct Bar { Foo getString() { return Foo(); } }; int main() { Bar a; const Foo& b = a.getString(); <--- Foo getString() becomes Foo&? }
https://gcc.godbolt.org/z/GYzWa7
Здесь не о чем предупреждать. Путем привязки ссылки const к временному объекту, возвращаемому getString, его время жизни увеличивается, чтобы соответствовать времени жизни ссылки.
const
getString