我正在写日志的通用类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