Answers
如果要求不是很高,C++里可以采用<<运算符的特性采用如下方式:
void SomeFunc( bool p1, wchar_t* p2 )
{
LOG_PARAMETERS<<p1<<p2;
}
LOG_PARAMETERS根据需要定义:
// #define COMPACT_FPC_LOG_PARAMETER
// fpc::FPCLogMessage(PARAMETER,&fpc::FPCLogMessage::SendToSink)
// #define LOG(severity) COMPACT_FPC_LOG_PARAMETER # # severity.stream()
// #define LOG_PARAMETERS LOG(PARAMETER)
class FPC_DLL FPCLogMessage{
public:
typedef void (FPCLogMessage::*SendMethod)();
FPCLogMessage(LogSeverity severity,SendMethod method){/*******/}
~FPCLogMessage(){/*******/}
void SendToFile(){/*******/}
void init(){/*******/}
FORCE_INLINE std::stringstream& stream() { return LogStream_; }
private:
SendMethod fSengMethod_;
LogSeverity eSeverity_;
std::stringstream LogStream_;
FPC_SYNTHESIZE_PASS_BY_REF(std::string,sLogFileName_,LogFileName)
};
如果只想通过一个宏实现所有的参数打印,借助函数调用参数入栈,可以取得FP,之后应该可以在栈内做些操作,可能比较。。。十分。。。非常麻烦.
ToNyL.
answered 12 years, 6 months ago