簡體   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