Tôi đang xem xét việc tạo lớp ghi nhật ký có các thành viên như Thông tin, Lỗi, vv có thể cấu hình đầu ra thành bàn điều khiển, tệp hoặc không đến đâu.Triển khai thực hiện lệnh không hoạt động :: ostream
Để đạt hiệu quả, tôi muốn tránh phí trên của việc định dạng thư sẽ bị vứt bỏ (tức là thông báo thông tin khi không chạy ở chế độ tiết). Nếu tôi thực hiện một tùy chỉnh std :: streambuf mà kết quả đầu ra đến hư không, tôi tưởng tượng rằng std :: ostream lớp vẫn sẽ làm tất cả các định dạng. Bất cứ ai có thể đề nghị một cách để có một thực sự "null" std :: ostream rằng tránh làm bất kỳ công việc ở tất cả các thông số được truyền cho nó với <<
?
Cảm ơn.
tôi sẽ không lo lắng. chỉ cần sử dụng một dòng null như được hiển thị bởi neil. các lớp học không cần bất kỳ hiệu suất tốt hơn, bởi vì rõ ràng nếu bạn không có một mục tiêu null, định dạng * có * được thực hiện, vì vậy nó rõ ràng là không quan trọng. chỉ là 2 xu của tôi –
hmm, nhưng có vẻ như nó được dự định là một "đầu ra gỡ lỗi" thingy? một cách tôi đã thấy là như thế này: out() << a << b ...; và out() trả về struct f {}; với mẫu là f const & toán tử << (f const & f_, T const) {return f_; }, và sau đó tạo ra các cấu trúc khác nhau tùy thuộc vào cấp độ nhật ký. hoặc thực hiện các chức năng khác nhau hoặc bất kỳ chức năng nào. –