从 std::type_info 声明变量类型

Declaring a variable type from std::type_info

我可以只从 std::type_info 声明变量类型吗?我想做这样的事情:

void some_function(std::type_info type){
    type variable;
}

是否可以将其作为参数传递给函数并在其中进行初始化?

我确定这是不正确的 C++,因为函数声明中的 type 是一个变量名,而函数体中的 type 是一个类型名。不能互换。

(注意:我是通过纯逻辑和一些 C++ 知识推导出来的。其他用户很可能会添加一些关于 std::type_info 本身的信息。)

最好的办法是使用模板:

template <typename T>
void some()
{
    T variable;
}

//usage:
some<int>();

由于 C++ 是静态类型的,因此无法在运行时确定可变类型,因此无论如何都应该在编译时知道所有类型。