Шаблонная функция C ++ для массивов, векторов, встроенных типов, STL

Я хотел бы создать класс, который имеет функцию, которая сохраняет данные, отправленные в это в текстовый файл. Данные, которые могут быть переданы в него, могут быть любыми, например std :: string , int , double , float , ] unsigned int и т. д., а также может быть: std :: vector , T [] и std :: vector > , 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 является встроенным типом (например, int или float или что-то в этом роде).

И затем я пишу функции для каждого из SaveData (...) соответственно?

5
задан Jean-Luc 21 February 2012 в 07:10
поделиться