Если я использую этот код:
template <typename Streamable>
/* ... */
std::stringstream ss;
ss << function_yielding_a_Streamable();
auto last_char = ss.str().back();
тогда (я полагаю) копия строки в ss
Нужно создать буфер для того, чтобы я получил последний символ, и затем он будет уничтожен. Могу ли я сделать что-то лучше вместо этого? Возможно, используя seekp()
метод?
Вы могли бы сделать что-то вроде этого:
char last_char;
std::stringstream ss;
ss << function_yielding_a_Streamable();
ss.seekg(-1,ios::end);//get to the last character in the buffer
ss>>last_char;
Других решений пока нет …