我正在寫日誌的通用類C++不能推導出模板參數
- 可以被稱爲與字符串函數對象登錄
- 豐富了字符串的一些信息(系統時間,日誌級別,......)
- 將日誌消息傳遞給實現運算符的輸出類。這個「輸出通道」可以在施工時定義。
代碼:
template<class Writer>
class Logger
{
public:
Logger(Writer* writer);
~Logger(void);
void operator() (char level, std::string message);
private:
Writer* writer;
};
template<class Writer>
Logger<Writer>::Logger(Writer* writer)
: writer(writer)
{
}
template<class Writer>
Logger<Writer>::~Logger(void)
{
}
template<class Writer>
void Logger<Writer>::operator()(char level, std::string message) {
/* do something fancy with the message */
/* ... */
/* then write to output channel */
this->writer << message;
}
但是我得到的錯誤在編譯 「無法推斷出模板參數」。發生錯誤的行是
this->writer << message;
我很新的C++模板,我寧願從力的C# - 側來了...有什麼建議?
預先感謝您...
你應該展示你如何調用Logger :: operator()' –
我沒有理由在這裏使用指針而不是引用。 – soon
是啊,你是對的,謝謝你......只是把它改成參考。 – mbue