我希望能够编写如下代码:
int n;
std::string s = "some string";
SomeFunction("hello world" << n << " " << s << std::endl);
其中 SomeFunction() 是某个其他类的方法。关键是我希望能够使用 operator<< 为特定方法构造输入,就像在 C++ 中写入标准输出时所做的那样。我该怎么做?
谢谢。
最佳答案
您的第一个参数必须是重载 operator<<
的自制类型并构建某种参数列表。
您的类可能包含一个 ostream 并转发 operator<<
如果该函数采用字符串而不是神秘的字符串构建对象,则您需要将对象转换回字符串。
您可以通过 ostringstream
提前完成像这样:
int n;
std::string s;
std::ostringstream oss;
SomeFunction( ( oss << "hello world " << n << " " << s << '\n' ).str() );
关于c++ - 在 C++ 中,使用 operator<< 构造函数的输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5614842/