ToMmyDong Blog

  • std::optional 與 nullptr

    今天在跟小 Y 聊 optional std::optional 是一個 C++ 17 的 class,它用來表示一個值可能是空的,可以看 cppreference 我就不重複介紹了。我們也可以用一個 pointer 來做到同樣的效果,讓 nullptr 代表值是空的。 普遍認為 optional 能夠增加程式碼的可讀性,更明確的表示一個值可能是空的。當我們看到一個 pointer 的時候,我們不一定會確定那個值是空的,甚至會忽略的 null check,產生 segmentation fault。使用 optional 可以明確的表示這個值一定有可能是空的,也有 clang-tidy 工具的規則 可以防止你沒有處理值為空的 case。

    Read more…