Mam działającą klasę rejestratora, która wyprowadza jakiś tekst do pliku richtextbox (Win32, C++). Problem w tym, że zawsze kończy się przy użyciu to tak:Jak używać mojej klasy logowania jak std C++ stream?
stringstream ss;
ss << someInt << someString;
debugLogger.log(ss.str());
zamiast byłoby znacznie wygodniej jest używać go jak strumień, jak w:
debugLogger << someInt << someString;
Czy istnieje lepszy sposób niż przekazywanie wszystkiego do wewnętrznej instancji Stringstream? Jeśli to zrobisz, kiedy będę musiał spłukać?
Jak poradziłbym sobie z "problemem spłukiwania", tzn. W pewnym momencie muszę wysłać wszystko do mojego richtextboxa. Czy powinienem przetestować wartość przychodzącą dla "linii końcowej"? – newgre
To jest osobne pytanie, ale odpowiedź jest prosta: zamiast używać "\ n", użyj końcówki! Spowoduje to automatyczne opróżnienie strumienia. Jednakże, aby podłączyć TextBox do strumienia, zasadniczo musisz zaimplementować własny bufor strumienia (spójrz na metodę rdbuf). –
Lub dodaj własny typ manipulatora, który naśladuje koniec/końce, z przeciążeniem operatora << w celu jego wykrycia. – Kylotan