减少c ++中的代码重复

cpp*_*hon 0 c++ refactoring

我可以将以下代码减少为一个功能吗?他们中的大多数都是一样的.谢谢

void info(StreamLog &streamLog)
{
    streamLog.ss << "info:";
    streamLog.mFilter->setLogLevel("info");
}
void debug(StreamLog &streamLog)
{
    streamLog.ss << "debug:";
    streamLog.mFilter->setLogLevel("debug");
}
void warning(StreamLog &streamLog)
{
    streamLog.ss << "warning:";
    streamLog.mFilter->setLogLevel("warning");
}
void error(StreamLog &streamLog)
{
    streamLog.ss << "error:";
    streamLog.mFilter->setLogLevel("error");
}
void critical(StreamLog &streamLog)
{
    streamLog.ss << "critical:";
    streamLog.mFilter->setLogLevel("critical");
}
Run Code Online (Sandbox Code Playgroud)

如果您需要更多信息,请告诉我

第1编辑:抱歉!我没有清楚地解释我的情况.我使用那些函数作为操纵器.因此,我能做到

clog << info << ...

clog << warning << ...

我不想用

clog << log(info)<< ...

有更好的方法吗?谢谢

Rém*_*oit 10

void log(StreamLog &streamLog, const string& level)
{
    streamLog.ss << level << ":";
    streamLog.mFilter->setLogLevel(level);
}
Run Code Online (Sandbox Code Playgroud)

始终尝试查看常见操作并将其抽象为不同的函数.