繁体   English   中英

使用 init 语句 (c++17) 将 if 转换为 c++14

[英]Convert if with init-statement (c++17) to c++14

这仅适用于 c++17。 有没有办法将其转换为 c++14?

if (auto user = static_cast<CUser*>(pMover); user && !user->UserState())
        return;

您必须将if拆分为2 个语句
为了将user的 scope 限制为if语句,可以{...}括起来

{
    auto user = static_cast<CUser*>(pMover);
    if (user && !user->IsRecordBookOptIn())
        return;
}

在这种情况下,很简单:

if (pMover && static_cast<CUser*>(pMover)->IsRecordBookOptIn()) return;

当且仅当pMover为 nullptr 时, static_cast<CUser*>(pMover)为 nullptr。 在这种情况下, &&不会评估右手边。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM