跳轉到內容

C++ 語言/型別/變體/模板化變體

來自華夏公益教科書,開放書籍,開放世界

一個型別為 std::variant<int,float,std::string> 的變數 xVar 可以儲存一個值為 intfloatstd::string 的值(一次只能儲存其中一個)。因此,這個模板化變體變數是 C union 的現代替代方案。在賦值 xVar = 9.9F; 後,您知道該變數當前儲存的是 float,因為 std::holds_alternative<float>(xVar) 返回 true,而 xVar.index() 返回 1(型別選項的基於 0 的索引)。可以透過 std::get<float>(xVar)std::get<1>(xVar) 訪問該值。

有關模板化變體的更多資訊(包括互動式示例)

華夏公益教科書