цър-пър
3 отговора
284 прегледа
цър-пър
Здравейте,
Интересно ми е как ще решите следния проблем:
Трябва да се създаде клас Message който да се инициализра с некъв поток тип ostream
и някво състояние да речем:
enum _State_t
{
_S_debug,
_S_verbose,
_S_info
};
Message msg(_S_debug, cout);
след тва искаме следните операции да работат:
msg << _S_state << "Наздраве" << 1 << " " << 0 << endl;
тогава когато _S_state == инициализираното състояние
и съотвенто да получавам като съобщение(при горната инициализация) нещо подобно:
$:DEBUG: "Наздраве"1 0
$:
съответно ако _S_state != инициализираното състояние нищо да не се изписва.
Имам некво решение и ако ви е интересно ще го споделя по нататък. Дано не ме сметнете за идиот с такава проста задача, но бих се зарадвал на някво елегантно решение.
Интересно ми е как ще решите следния проблем:
Трябва да се създаде клас Message който да се инициализра с некъв поток тип ostream
и някво състояние да речем:
enum _State_t
{
_S_debug,
_S_verbose,
_S_info
};
Message msg(_S_debug, cout);
след тва искаме следните операции да работат:
msg << _S_state << "Наздраве" << 1 << " " << 0 << endl;
тогава когато _S_state == инициализираното състояние
и съотвенто да получавам като съобщение(при горната инициализация) нещо подобно:
$:DEBUG: "Наздраве"1 0
$:
съответно ако _S_state != инициализираното състояние нищо да не се изписва.
Имам некво решение и ако ви е интересно ще го споделя по нататък. Дано не ме сметнете за идиот с такава проста задача, но бих се зарадвал на някво елегантно решение.
Re: цър-пър
Ама много е гадно така да сложиш цър-пър за заглавие на темата, а вътре пак за някакви класове да говориш...
Като сложиш тема "цър-пър", вътре се пише какво месо да се носи, каква бира да се пие, и на коя полянка ще бъде барбекюто.
Мечтата е мисъл, мисълта е идея, всяка идея се реализира. Аз не мечтая, а реализирам идеите си.
Като сложиш тема "цър-пър", вътре се пише какво месо да се носи, каква бира да се пие, и на коя полянка ще бъде барбекюто.
Мечтата е мисъл, мисълта е идея, всяка идея се реализира. Аз не мечтая, а реализирам идеите си.
Re: цър-пър
Без да му мисля, примерно така:
template <typename T>
Message& operator << (Message& msg, const T& t)
{
if (...) {// log condition
msg.m_cout << t;
}
return msg;
}
Предполагам logging levela не е известен през compile time и може да се променя.
Тебе какво те притеснява?
template <typename T>
Message& operator << (Message& msg, const T& t)
{
if (...) {// log condition
msg.m_cout << t;
}
return msg;
}
Предполагам logging levela не е известен през compile time и може да се променя.
Тебе какво те притеснява?
Re: цър-пър
Как ще се реализира //log condition в твоя случай и как ще се изпише в началото къв лог е (макар че второто не е толкова важно).
Може и без шаблони макар че шаблоните са яки.
Може и без шаблони макар че шаблоните са яки.