1. 一個 va_list 錯誤案例

    最近幫別人除錯,看到一個有趣的案例。下面的程式會有 Segmentation Fault(記憶體區段錯誤),大家看得出問題嗎?

    #include <stdarg.h>
    
    struct Context {
      char *error_;
    };
    
    void report_error …

    More

  2. std::any 使用方法

    本文要介紹 C++ 17 新增的 std::any 類別。它能儲存所有「可以被複製建構(Copy Constructible)」的數值。以下我們會先介紹 std::any 的基本用法,接著介 …

    More

  3. C++ std::thread join() 與解構函式

    前幾天在除錯的過程中,我注意到程式印出的 Stack Trace 和我的預期相去甚遠。在反覆研究之後,我發現一段有問題的程式碼。大 …

    More

  4. C 語言的「四捨六入五成雙」

    最近在編寫單元測試的時候,我需要一個將浮點數「四捨六入五成雙」的函式。一開始我想:這很容易:只要把整數部分和小數 …

    More

  5. C++ 17 對例外處理規格的改動

    今天我想要介紹 C++ 17 對「例外處理規格(Exception Specification)」的二個改動:

    1. 移除 throw (ClassName)
    2. noexcept 納入型別系統(Type System)

    移除 throw (ClassName) 例外處理規格

    在 C++ 98 …

    More

  6. C++ 17 __has_include 前置處理表達式

    __has_include 是 C++ 17 加進前置處理器(Preprocessor)的新功能。我們能以 __has_include 表達式偵測某個標頭檔(Header File)是否存在。如果前置處理器能找到指 …

    More

  7. C++ 17 Inline Variable

    Inline Variable(內嵌變數)是 C++ 17 新增的功能。Inline Variable 與 Inline Function(內嵌函式)相似,能讓我們在多個 Translation Unit(編譯單元)定義同樣的變數[1]。鏈結器(Linker …

    More

Page 1 / 3 Next »