ここでは、2 つのよく知られた型の値と、その他の型の値を受け取る 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
た。さて、これを行う方法があるかどうかはわかりません。どんな種類の変数のポインタを渡してから、それを変換します(それぞれのケースに応じて期待される変数のタイプを知っています。どうすればいいですか?ありがとう!