是否可以使用未定义类型的输入参数或预定义的已接受类型列表创建C ++函数?
例如,我有一个C ++类,其中包含几个不同类型的变量。变量从真实世界数据更新,我希望在数据到达时更新每个变量。
这种函数的(不优雅的)伪代码如下所示:
void objectFiller (myObject, input_var)
{
if (typeid(input_var).name() == "int")
{
myObject.int_var = input_var;
}
if (typeid(input_var).name() == "double")
{
myObject.double_var = input_var;
}
if (typeid(input_var).name() == "string")
{
myObject.string_var = input_var;
}
}
input_var
的类型未知,或者来自预先确定的可接受类型列表。
现在,我明白因为C ++是静态类型的,所以这个问题的答案可能是否定的。我知道我可以通过三个单独定制的功能实现上述功能。但是,我仍然想问这个问题,以防有一些C ++库我不知道可以做到这一点,并且为了我自己的教育。