Как заставить оператор std :: stringstream >> прочитать всю строку вместо остановки на первом пробеле?
У меня есть шаблон класса, который хранит значение, прочитанное из текстового файла:
template <typename T>
class ValueContainer
{
protected:
T m_value;
public:
/* ... */
virtual void fromString(std::string & str)
{
std::stringstream ss;
ss << str;
ss >> m_value;
}
/* ... */
};
Я пытался установить / сбросить флаги потоков, но это не помогло.
Разъяснение
Класс представляет собой контейнерный шаблон с автоматическим преобразованием в / из типа T. Строки являются только одним экземпляром шаблона, он также должен поддерживать другие типы. Вот почему я хочу заставить operator >> имитировать поведение std :: getline.