Tag | cxx

  1. C++ 17 在 Lambda Expression 捕捉 *this

    如果一個成員函式(Member Function)有 Lambda Expression 而且該 Lambda Expression 有指定預設補捉模式(不論是傳值或傳參考)。當 Lambda Expression 內有程式碼指稱「成員函式 …

    More

  2. C++ 17 if constexpr 述句

    C++ 17 新增的 if constexpr 述句能讓我們用更簡潔的方式編寫樣版特化(Template Specialization)。本文會介紹它的語法與應用。

    語法

    if constexpr 述句的語法與 …

    More

  3. C++ 17 類別樣版參數推導

    今天我想要介紹 C++ 17 的類別樣版參數推導(Class Template Argument Deduction)。在 C++ 17 之前,樣版參數推導(Template Argument Deduction)只會被施行於「函式樣版(Function Template)」。以 std …

    More

  4. C++ 17 折疊表達式

    C++ 11 引入了 Variadic Template,讓我們得以宣告任意個數的樣版參數。C++ 標準函式庫的 std::make_tuple 就是一個典型的例子:

    #include <tuple>
    
    int main() {
      auto a = std::make …

    More

  5. C++ 17 選擇述句與初始化述句

    C++ 98 程式語言標準將 if、switch、while 與 for 述句的文法依序定義為:

    if (condition) statement
    if (condition) statement else statement
    switch (condition) statement
    while (condition) statement
    for (for-init-statement conditionopt; expression) statement

    其中,我們能在 …

    More

  6. C++ 17: 以 std::scoped_lock 避免 Dead Lock

    最佳化多執行緒程式時,為了減少非必要阻塞(Blocking),常見作法是將一個 Mutex 依照保護對象拆分為多個 Mutex。如此一來,一個執行緒 …

    More

  7. C++ 17 結構化綁定

    今天我想要介紹 C++ 17 新增的 Structured Binding(結構化綁定)。以 std::pair 為例,Structured Binding 能讓我們能直接將 std::pair 的內容綁定到我們指定的識別字 …

    More

  8. C++17: string_view、map 與異質比較查詢

    身為一個 C++ 程序員,我都會盡我所能避免不必要的計算。所以當我聽到 C++ 17 新增了 std::string_view 類別,我就迫不及待的想要使用 …

    More

  9. 一個 Undefined Behavior 的故事

    L 開完會,想要去吃晚餐的時候,忽然被 A 叫住:你能來看一個 X 公司發過來的 Issue 嗎?這有點急。

    問題是這樣的:下面這段代碼 …

    More

« Prev Page 2 / 2