从 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++ 是静态类型的,因此无法在运行时确定可变类型,因此无论如何都应该在编译时知道所有类型。
我可以只从 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++ 是静态类型的,因此无法在运行时确定可变类型,因此无论如何都应该在编译时知道所有类型。