【发布时间】:2015-09-16 13:23:18
【问题描述】:
当您将变量流式传输到 cout 等输出流时,类型转换是自动的。我想弄清楚的是如何通过函数调用来做到这一点,例如:
inline void DEBUG(ostream& s) // Don't know if this prototype is appropriate
{
cout << s;
}
main()
{
int i = 5;
DEBUG("The value is: " << i << endl); // This doesn't compile
DEBUG("The value is: " + i + endl); // Neither does this
}
我在这里发现了类似的问题,但它们都涉及将流对象作为参数传递,而我试图将 “流数据” 传递给已经具有流对象的函数,所以反过来。这甚至可能吗?我不想诉诸显式类型转换。我也找到了this question,但如果可以避免的话,我真的不想写一个完整的记录器类。
目前我将它作为一个宏来实现,它可以工作,但如果可能的话,我宁愿使用内联函数。
#define DEBUG(s) (cout << s)
【问题讨论】:
-
那个“整个记录器类”不到二十行代码。
标签: c++ stream type-conversion