我正在编写一个用于记录的通用类
- 可以被称为带有要记录的字符串的函子
- 用一些信息(系统时间,日志级别,...)丰富字符串
- 将日志消息传递给实现 << 运算符的输出类。这个“输出通道”可以在构建时定义。
编码:
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# 方面的力量......有什么建议吗?
先感谢您...