struct Test { };

Test foo()
{
  return Test();
}

void bar()
{
  const Test& t = foo();
  /* t を使った処理 */
}

これって問題ない?
それとも寿命切れ?