У меня есть две функции, для которых требуется следующее:
Функция 1: Требуется адрес переменной для установки значения.(Он знает о правильном типе)
Функция 2: перегруженная функция, которая требует значения типа.
Мне нужен способ вернуть различные типы на основе перечисления (которыйуказывает тип для использования).
Я пытался использовать std :: get, так как вы можете использовать число для указания типа.Однако он требует, чтобы SelectedType был константным выражением, которым оно не является.
std::variant<uint8_t,int8_t,uint16_t,int16_t,double,float> Var;
std::get<SelectedTypeEnum>(Var)
Смысл в том, чтобы использовать одну переменную, чтобы избежать повторения кода.
Рассмотрим следующий код:
enum Type{
Type_uint8_t,
Type_int8_t,
Type_uint16_t,
Type_int16_t,
Type_std::string
} TypeList;
GetTypeToUse(Type&){ /* Get/Set the type to use */ }
void SetValueBasedOnEnum(Type TypeToUse,void* ptr) {/* Function 1: Sets the value of the type */}
// This is a Overloaded Function which supports all types in the enum.
//"T" represents the type.
void DoStuffWithDifferentTypes(T ValueOfType) { /*Function 2:*/ }