我想在 if 内部定义一个参数。例如
if(MyDataPtr && auto* InfoPtr = MyDataPtr ->extractInfo())
还有gen编译错误
Expected ')'
难道不可能吗?或者可以做什么? - 我不喜欢下面的代码 - 寻找更好(优雅)的实现
if(MyDataPtr)
{
auto* InfoPtr = MyDataPtr ->extractInfo();
if (InfoPtr )
//some code
}
不幸的是你不能在表达式中间定义变量。但是您可以将变量定义为单个表达式并将其用作条件,这将稍微简化您的代码:
if (MyDataPtr)
{
if (auto InfoPtr = MyDataPtr->extractInfo())
{
// Use InfoPtr...
}
}
是不是更“优雅”?也许对某些人来说。