Category | 2019

  1. C++ 17 折疊表達式

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

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

    More

  2. 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

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

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

    More

  4. C++ 17 結構化綁定

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

    More

  5. 漫談 C/C++ 巨集展開規則

    最近工作上遇到一個和 C/C++ 巨集有關的問題。我想要使用巨集將原本呼叫 bcopy 的程式碼導向另一個實作 __bionic_bcopy。所以我寫出以 …

    More

  6. 簡介 perf_events 與 Call Graph

    Call Graph 是幫助 Perf Events 使用者判讀效能瓶頸成因的重要工具。Call Graph 優雅地結合「花去最多執行時間的熱區」與「為什麼要執行熱區 …

    More

  7. 使用 perf_events 分析程式效能

    在最佳化程式之前,我們必須要先測量程式的執行狀況,如此我們才能對症下藥。本文要介紹 Linux 核心內建的系統效能分析 …

    More

  8. 簡介 Sparse Set

    最近讀一些論文的時候,學到 Sparse Set 資料結構。我覺得這個資料結構的設計還蠻有趣的,所以花一點時間把他記錄下來。

    Sparse Set …

    More

Page 1 / 2 Next »