理解統一初始化器和最令人煩惱的解析
在C 11 中,統一初始化器為初始化物件和資料結構提供了簡潔的語法。然而,它們的使用可能會導致潛在的歧義,稱為「最令人煩惱的解析」。
最令人煩惱的解析
考慮以下代碼snippet:
<code class="cpp">#include<iostream> class Timer { public: Timer() {} }; int main() { auto dv = Timer(); // What is Timer() ? And what type is dv? int time_keeper(Timer()); // This is a function right? And why isn't the argument " Timer (*) ()"? return 0; }</code>
分析:
dv = Timer();
int time_keeper(Timer());
int time_keeper(Timer());結論:在「最令人煩惱的解析」中在這種情況下,編譯器嘗試根據上下文和規則推斷表達式的類型和解釋。透過了解這些規則如何應用,程式設計師可以避免歧義並以明確的意圖編寫程式碼。
以上是最令人煩惱的解析是什麼以及為什麼它會發生在 C 11 中?的詳細內容。更多資訊請關注PHP中文網其他相關文章!