C++ 向函数发送任何类型的参数

2023-11-26

事情是这样的:我想创建一个 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,这一定是一场疯狂的绝望试炼,希望能够获得幸运。现在,我不知道是否有办法做到这一点,传递任何类型的变量的指针,然后将其转换为它是什么(我知道根据每种情况期望的变量类型。 我该怎么做?谢谢!


你应该使用模板

template <typename T>
void change_settings(string element, short setting, T value);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C++ 向函数发送任何类型的参数 的相关文章