Czekam na tworzenie klasy rejestrowania, która ma członków, takich jak informacje, błąd itp., Które można konfigurowalne wyjście do konsoli, pliku lub donikąd.Wdrażam no-op std :: ostream
Dla zwiększenia efektywności chciałbym uniknąć narzutów związanych z formatowaniem wiadomości, które będą wyrzucane (tj. Wiadomości informacyjnych, gdy nie są uruchomione w trybie szczegółowym). Jeśli zaimplementuję niestandardowy std :: streambuf, który wyprowadza donikąd, wyobrażam sobie, że warstwa std :: ostream nadal będzie formatować. Czy ktoś może zaproponować sposób na naprawdę "zerowy" std :: ostream, który unika wykonywania jakiejkolwiek pracy na parametrach przekazywanych do niego z <<
?
Dzięki.
Nie martwię się. po prostu użyj strumienia pustego, jak pokazano przez Neila. klasa nie wymaga żadnej lepszej wydajności, ponieważ oczywiście jeśli nie masz zerowego celu, formatowanie * ma * do wykonania, więc oczywiście nie jest krytyczne. tylko moje 2 centy –
hmm, ale wygląda na to, że jest przeznaczony jako "wynik debugowania"? jeden sposób widziałem jest tak: out() << a << b ...; i out() zwraca struct f {}; bez szablonu f const & operator << (f const i f_, T const) {return f_; }, a następnie sprawdź zwracane różne struktury w zależności od poziomu dziennika. lub tworzyć różne funkcje lub cokolwiek innego. –