2012-01-17 101 views
0

我使用SimpleINI獲得值構造器爲std::stringstream my_string; -無法通過字符串流

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

COUT工作正常。我可以在控制檯上打印數值。

但是當我通過這個字符串蒸汽BOOST喜歡這個 -

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

ASIO服務器的構造函數,我得到下面的編譯器錯誤 -

‘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

中刪除.str()你能發表一個小例子來重現這個嗎?該錯誤表明專用賦值運算符正在被調用,但無法告訴發佈代碼的位置。 – hmjd 2012-01-17 12:20:43

+2

'my_string.str()'是一個字符串,而不是一個流。 – 2012-01-17 12:24:03

+0

@ R. Martinho Fernandes -thanks!我改變了構造函數,現在它的工作正常 – user837208 2012-01-17 12:26:55

回答

1

你說你不喜歡的東西

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

但你傳遞一個字符串構造函數,而不是一個字符串流。 要麼改變你的構造函數,要麼從my_string.str()

相關問題