У меня есть метод, который принимает строку и использует методы regex, чтобы определить, представляет ли эта строка float, int или string.Лучший шаблон для возврата одного из множества типов данных
Каков наилучший шаблон для возвращаемого результата float, int или string?
Так что мой основной метод прототип:
void interpretString(const std::string &s);
Что такое лучший способ получить обратно результирующий поплавок, Int или строки? В настоящее время я продлил мой метод следующим образом:
enum dataType { None, String, Float, Int };
dataType interpretString(const std::string &s,
string &s,
float &f,
int &i);
, где данные возвращаются в соответствующих S, F, или я переменные. Это кажется неудовлетворительным, поскольку я передаю данные, которые никогда не будут использоваться (например, если входная строка является поплавком, значения строки и целочисленного значения не будут использоваться)
Есть ли лучший способ?
Использование 'подталкивание :: variant' или определить свой собственный' union'. –
Что-то вроде boost любой может быть хорошим возвращаемым типом. Однако, если вы ограничиваете его плавающей точкой, целым числом или строкой, вы можете использовать объединение с информацией о типе (int, float string). –