gpt4 book ai didi

c++ - 将 std::any 转换为未知类型

转载 作者:太空狗 更新时间:2023-10-29 23:26:16 27 4
gpt4 key购买 nike

如果我有 std::stringintstd::any,我如何将其转换为类型包含在内吗?

std::any 上有 type,但我不能使用此类型进行转换。

例子:

#include <any>
#include <iostream>
#include <string>

int main(void) {
std::any test = "things";
std::any test2 = 123;

// These don't work
std::string the_value = (std::string) test;
int the_value2 = (int) test2;

std::cout << the_value << std::endl;
std::cout << the_value2 << std::endl;
}

最佳答案

您可以使用 any_cast 来实现这一目的。例如

auto a = std::any(12); 
std::cout << std::any_cast<int>(a) << '\n';

您可以从 cppreference 中找到更多详细信息

如果你想动态地将值转换为std::any,你可以试试

if (a.type() == typeid(int)) {
cout << std::any_cast<int>(a) << endl;
} else if (a.type() == typeid(float)) {
cout << std::any_cast<float>(a) << endl;
}

关于c++ - 将 std::any 转换为未知类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46781126/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com