就是这样:我想创建一个 void 函数,它将接收两个众所周知的值类型,另一个可以是任何值。代码将是这样的:
void change_settings(string element, short setting, ??? value) {
switch (setting) {
case ST_NAME:
// Cast value to string or char* and change element.name
break;
case ST_AMOUNT:
// Cast value to integer and change element.amount
break;
case ST_ENABLED:
// Cast value to boolean and change element.enabled
break;
}
}
我尝试创建值的类型const void*
,但我得到一个错误(cast from ‘const void*’ to ‘short int’ loses precision
),因为我只是这样做了:short name = (short)value
,这一定是一些疯狂的绝望试验,希望能走运。现在,我不知道是否有这样做的方法,传递任何类型的变量的指针,然后将其转换为它是什么(我知道根据每种情况预期的变量类型。我该怎么做?谢谢!