这里有云:我希望创建一个将接收值的两个著名的类型,另一种可能是任何一个无效的功能。 该代码会是这样:
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;
}
}
我tryied使值的类型const void*
,但我得到一个错误( cast from 'const void*' to 'short int' loses precision
),因为我只是做了这一点: short name = (short)value
,它必须是一些疯狂绝望的试验,希望能得到幸运。 现在,我不知道是否有这样做的方式,传递的任何类型的变量,然后将其转换成它是什么指针(我知道变量取决于每种情况下所期望的类型。我会怎么做呢?谢谢!