引用定义时必须要初始化,但是如果初始化是根据条件才能确定时,要想给引用赋值,需要将条件封装到lambda中。
UserType a;
UserType b;
UserType c;
auto& d = [&]() -> UserType& {
if (a.valid())
return a;
else if (b.valid())
return b;
else
return c;
}();
引用定义时必须要初始化,但是如果初始化是根据条件才能确定时,要想给引用赋值,需要将条件封装到lambda中。
UserType a;
UserType b;
UserType c;
auto& d = [&]() -> UserType& {
if (a.valid())
return a;
else if (b.valid())
return b;
else
return c;
}();