文章

std::any 简单用法

std::any 是 c++17 引入的标准库类,它提供了一种类型安全的机制,可以在运行时存储和访问任意类型的值。通过 std::any,我们可以将任意类型的值存储在一个统一的容器中,并在需要时进行类型转换和访问,从而实现更灵活的编程。

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include <iostream>
#include <any>

struct Person
{
    std::string name;
    int age;
};

int main()
{
    std::any var = 88;
    std::any str = "hahaha";
    Person p = {
        "老王",
        88
    };
    std::any info = p;

    std::cout << std::any_cast<int>(var) << std::endl;
    std::cout << std::any_cast<std::string>(str) << std::endl;
    auto ret = std::any_cast<Person>(info);
    std::cout << "姓名: "
              << ret.name
              << " 年龄: "
              << ret.age
              << std::endl;

    return 0;
}
本文由作者按照 CC BY 4.0 进行授权

© ziqing. 保留部分权利。

纸上得来终觉浅,绝知此事要躬行!