2012-01-17 2 views
0

Я использую SimpleINI, чтобы получить значения в std::stringstream my_string; -Невозможно передать stringstream конструктору

CSimpleIniCaseA::TNamesDepend::const_iterator i; 
for (i = values.begin(); i != values.end(); ++i) 
my_string << i->pItem <<"\n"; 
cout<<my_string.str()<<endl; 

соиЬ работает нормально. Я могу печатать значения на консоли.

Но когда я прохожу эту строку пар БУСТЕРА ASIO конструктор сервера как this-

server tcp(tcp_service,my_string.str()); 

Я получаю ниже компилятор error-

‘std::basic_streambuf<_CharT, _Traits>& std::basic_streambuf<_CharT, _Traits>::operator=(const std::basic_streambuf<_CharT, _Traits>&) [with _CharT = char, _Traits = std::char_traits<char>]’ is private 

я в состоянии передать другие типы данных, как char *, но не струйным паром. Что не так?

+0

Не могли бы вы разместить небольшой пример, который воспроизводит это? Ошибка указывает, что оператор частного присваивания вызывается где-то, но невозможно указать, откуда из опубликованного кода. – hmjd

+2

'my_string.str()' это строка, а не поток. –

+0

@ R. Martinho Fernandes -thanks! Я изменил конструктор, и теперь он работает отлично – user837208

ответ

1

Вы сказали, что вы сделали что-то вроде

server tcp(tcp_service,my_string.str()); 

Но вы передаете строку в конструктор, а не stringstream. Либо замените свой конструктор, либо удалите .str() от my_string.str()

Смежные вопросы