# std::variant<Types...>::index

< cpp‎ | utility‎ | variant

constexpr std::size_t index() const noexcept; |  | (C++17 起)

返回 `variant` 当前所保有的可选项的零基下标。

若 `variant` 因异常无值（ valueless_by_exception ），则返回 variant_npos 。

### 示例

    #include <variant>
    #include <string>
    #include <iostream>
    int main()
    {
        std::variant<int, std::string> v = "abc";

        std::cout << "v.index = " << v.index() << '\n';

        v = {};

        std::cout << "v.index = " << v.index() << '\n';
    }

输出：

    v.index = 1
    v.index = 0

### 参阅

holds_alternative (C++17) | 检查某个 `variant` 是否当前持有某个给定类型 (函数模板)
std::get(std::variant) (C++17) | 以给定索引或类型（若类型唯一）读取 `variant` 的值，错误时抛出异常 (函数模板)