我可以将以下代码简化为一个函数吗?其中大部分是相同的。谢谢

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");
}


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

第一次编辑:
对不起!我没有清楚说明我的情况。我将那些功能用作操纵器。因此,我可以做

堵塞<
堵塞<
我不想用

堵塞<
还有更好的方法吗?谢谢

最佳答案

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


始终尝试查看通用操作并将其抽象为其他功能。

关于c++ - 减少C++中的代码重复,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19582523/

10-11 22:51