Шаблонная функция C ++ для массивов, векторов, встроенных типов, STL
Я хотел бы сделать класс, который имеет функцию, которая сохраняет отправленные ему данные, в текстовый файл. Данные, которые могут быть переданы ему, могут быть чем угодноstd::string
, int
, double
, float
, unsigned int
и т. д., а также может быть:std::vector<T>
, T[]
, а такжеstd::vector<std::vector<T>>
, T[][]
.
Теперь, очевидно, если это массив, мне нужно будет пройти через него, чтобы отправить данные в текстовый файл.
Я думал об использовании шаблонов, но я не уверен, как сделать массивы.
Это путь?
class CMyClass
{
template<typename T>
void SaveData(T data);
void SaveData(std::vector<T> data);
void SaveData(std::string data);
void SaveData(T* data); // Perhaps I'll also need to pass in the size.
void SaveData(std::vector<std::vector<T>> data);
void SaveData(T** data);
};
Я представляю, что код дляstd::string
будет таким же, как код дляstd::vector<T>
при условии, чтоT
является встроенным типом (какint
или жеfloat
или что-то).
А потом я пишу функции для каждого изSaveData(...)
соответственно?