std::any使用方法
时间: 2023-07-29 11:13:25 浏览: 68
std::any是C++17中新增的一个标准库类型,它可以存储任意类型的值。使用方法如下:
1. 引入头文件
```c++
#include <any>
```
2. 定义变量
```c++
std::any a;
```
3. 存储值
```c++
a = 1; // 存储int类型的值
a = "hello"; // 存储字符串类型的值
```
4. 获取值
```c++
int b = std::any_cast<int>(a); // 获取int类型的值
std::string c = std::any_cast<std::string>(a); // 获取字符串类型的值
```
需要注意的是,获取值时需要指定要获取的类型,如果实际存储的值类型与指定类型不匹配,会抛出std::bad_any_cast异常。此外,也可以使用std::any::has_value()方法来检查当前是否有值。
完整示例代码如下:
```c++
#include <iostream>
#include <any>
int main() {
std::any a;
std::cout << std::boolalpha << a.has_value() << std::endl; // false
a = 1;
std::cout << std::boolalpha << a.has_value() << std::endl; // true
int b = std::any_cast<int>(a);
std::cout << b << std::endl;
a = "hello";
std::cout << std::boolalpha << a.has_value() << std::endl; // true
std::string c = std::any_cast<std::string>(a);
std::cout << c << std::endl;
return 0;
}
```