【STL】头文件:<any>
any 头文件定义std::any 类以及配套的工具函数与异常类。目录1 说明2 接口3 异常类 bad_any_cast1 说明编译要求头文件any命名空间stdC17 标准MSVC 需要编译选项/std:c17及以上。std::any 核心类类型擦除容器。any 实例可以保存任意满足构造要求类型的对象也可以处于无值空状态。主要成员has_value()判断是否保存有效值noexceptreset()销毁内部保存的值置为空noexceptemplaceT()在 any 内部原位构造 T 类型对象覆盖原有内容type()返回保存值的 std::type_info空状态返回 typeid(void)支持拷贝、移动构造与赋值。2 接口全局函数功能any_cast读取 any 内部存储的值返回值版本类型不匹配 / 对象为空时抛出 bad_any_cast指针版本出错返回 nullptr不抛异常make_any工厂函数转发参数构造并返回 std::any 对象swap交换两个 any 的内部内容noexcept3 异常类 bad_any_cast继承自std::exception。当 any_cast值返回版本转换失败时抛出。成员 what() 返回错误描述字符串。提示std::any 运行时可以存放任意一种类型和 std::variant 不同variant 必须在编译期就列出所有允许的类型集合。