<分区>
我可以从 C++ 中的函数返回一个 const 引用参数吗?即,此代码是否会导致未定义的行为?
template<typename T>
class Option {
public:
...
const T & getOrElse(const T &x) const
{
return val == nullptr ? x : *val;
}
private:
T *val = nullptr;
}
Option<Foo> foo;
foo.getOrElse(Foo()); // <- using a temporary `Foo`