C++ 語言/型別/變體/模板化變體
外觀
一個型別為 std::variant<int,float,std::string> 的變數 xVar 可以儲存一個值為 int 或 float 或 std::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) 訪問該值。