std::bad_variant_access

来自cppreference.com
< cpp‎ | utility‎ | variant
 
 
 
 
定义于头文件 <variant>
class bad_variant_access : public std::exception
(C++17 起)

std::bad_variant_access 是下列情形中抛出的异常类型:

成员函数

(构造函数)
构造 bad_variant_access 对象
(公开成员函数)

std::bad_variant_access::bad_variant_access()

bad_variant_access() noexcept;

构造新的 std::bad_variant_access 实例。

参数

(无)

继承自 std::exception

成员函数

析构该异常对象
(std::exception 的虚公开成员函数)
[虚]
返回解释性字符串
(std::exception 的虚公开成员函数)

示例

#include <variant>
#include <iostream>
 
int main()
{
    std::variant<int, float> v;
    v = 12;
    try {
      std::get<float>(v);
    }
    catch(const std::bad_variant_access& e) {
        std::cout << e.what() << '\n';
    }
}

可能的输出:

bad_variant_access

参阅

以给定索引或类型(若类型唯一)读取 variant 的值,错误时抛出异常
(函数模板)
(C++17)
以一或多个 variant 所保有的各实参调用所提供的函数对象
(函数模板)