![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| azesmcar |
|
||||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 81 Всего: 211 |
Добрый день,
Программе нужно логирование данных на трех уровнях (debug, normal, error only), чтобы не писать каждый раз проверку типа этого
хочу чтобы сама функция, возвращающая ссылку на поток ostream вернула какую нибудь пустышку, если debug logging отключен из конфигурации. Т.е.
один из дурацких вариантов реализации (первое что пришло в голову) - это вернуть std::stringstream, но заливать всю дебаг информацию в память не самая лучшая идея. Можно конечно наследовать ofstream, но операторы не виртуальны. В общем то можно в конечном счете написать шаблонные адаптеры на ostream и работать с ними, но не хочется..может можно придумать что нибудь поэлегантней. Спасибо. Это сообщение отредактировал(а) azesmcar - 15.4.2010, 14:15 |
||||
|
|||||
| Alca |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3993 Регистрация: 14.6.2006 Репутация: 7 Всего: 50 |
|
|||
|
||||
| azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 81 Всего: 211 |
Alca
Да, забыл сказать, этот вариант я конечно проверял..он рабочий (в VS), но я не уверен что он будет работать на любой платформе. Так как конструктор принимает basic_streambuf *, где гарантии что библиотека будет проверять на NULL перед использованием? Сейчас поищу в стандарте. |
|||
|
||||
| Alca |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3993 Регистрация: 14.6.2006 Репутация: 7 Всего: 50 |
Это сообщение отредактировал(а) Alca - 15.4.2010, 14:31 |
|||
|
||||
| azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 81 Всего: 211 |
т.е. на NULL проверка делается по стандарту. все, спасибо. |
|||
|
||||
| boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
еще вариант, вернуть объект std::ostream который открыл "/dev/null". linux only
|
|||
|
||||
| azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 81 Всего: 211 |
||||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |