☰
【STL】头文件:<any>
2026/10/15 8:18:31 网站建设 项目流程

<any> 头文件定义std::any 类以及配套的工具函数与异常类。


目录

  • 1 说明
  • 2 接口
  • 3 异常类 bad_any_cast

1 说明

编译要求:

  • 头文件:<any>
  • 命名空间:std
  • C++17 标准,MSVC 需要编译选项/std:c++17及以上。

std::any 核心类
类型擦除容器。any 实例可以保存任意满足构造要求类型的对象,也可以处于无值(空)状态。
主要成员:

  • has_value():判断是否保存有效值,noexcept;
  • reset():销毁内部保存的值,置为空,noexcept;
  • emplace<T>():在 any 内部原位构造 T 类型对象,覆盖原有内容;
  • type():返回保存值的 std::type_info;空状态返回 typeid(void);
  • 支持拷贝、移动构造与赋值。

2 接口

全局函数功能
any_cast读取 any 内部存储的值(返回值版本:类型不匹配 / 对象为空时抛出 bad_any_cast;指针版本:出错返回 nullptr,不抛异常)
make_any工厂函数,转发参数构造并返回 std::any 对象
swap交换两个 any 的内部内容,noexcept

3 异常类 bad_any_cast

继承自std::exception。当 any_cast(值返回版本)转换失败时抛出。成员 what() 返回错误描述字符串。
提示💡:std::any 运行时可以存放任意一种类型;和 std::variant 不同,variant 必须在编译期就列出所有允许的类型集合。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询