C++ C++;无法推断模板参数
我正在编写一个用于日志记录的通用类C++ C++;无法推断模板参数,c++,templates,C++,Templates,我正在编写一个用于日志记录的通用类 可以使用要记录的字符串作为函子调用 使用一些信息(系统时间、日志级别等)丰富字符串 将日志消息传递给实现writer的输出类。writer如果使用指针作为运算符的左操作数,则应显示如何调用Logger::operator()我认为没有理由在此处使用指针而不是引用。是的,您是对的,谢谢。。。只是把它改成了参考资料。@LucTouraille:也许更好,是的。我要说的是,谢谢你,谢谢你,我应该看到:)@mbue:没问题,很高兴它有帮助;) template<
运算符的左操作数,则应显示如何调用Logger::operator()
我认为没有理由在此处使用指针而不是引用。是的,您是对的,谢谢。。。只是把它改成了参考资料。@LucTouraille:也许更好,是的。我要说的是,谢谢你,谢谢你,我应该看到:)@mbue:没问题,很高兴它有帮助;)
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;
this->writer << message;
// ^^^^^^
*(this->writer) << message;
template<class Writer>
class Logger
{
public:
Logger(Writer& writer);
// ^^^^^^^
// ...
private:
Writer& writer;
// ^^^^^^^
};
this->writer << message;