【发布时间】:2012-05-16 22:24:09
【问题描述】:
是否有工具可以为结构或类自动生成 ostream
输入(取自One Debug-Print function to rule them all):
typedef struct ReqCntrlT /* Request control record */
{
int connectionID;
int dbApplID;
char appDescr[MAX_APPDSCR];
int reqID;
int resubmitFlag;
unsigned int resubmitNo;
char VCIver[MAX_VCIVER];
int loginID;
} ReqCntrlT;
输出:
std::ostream& operator <<(std::ostream& os, const ReqCntrlT& r)
{
os << "reqControl { "
<< "\n\tconnectionID: " << r.connectionID
<< "\n\tdbApplID: " << r.dbApplID
<< "\n\tappDescr: " << r.appDescr
<< "\n\treqID: " << r.reqID
<< "\n\tresubmitFlag: " << r.resubmitFlag
<< "\n\tresubmitNo: " << r.resubmitNo
<< "\n\tVCIver: " << r.VCIver
<< "\n\tloginID: " << r.loginID
<< "\n}";
return os;
}
任何工具都可以,首选 Python / Ruby 脚本。
【问题讨论】:
-
可以尝试自动类序列化工具,我相信 boost 有一个。运算符
-
JSON、XML、任何人类可以阅读的东西我都可以。
-
你可以用 boost PP & MPL 生成它
-
字段有必要命名吗?
-
这是首选。
标签: c++ automation code-generation generator iostream