【发布时间】:2024-04-19 21:25:02
【问题描述】:
考虑下面的代码。
int id = 666;
stringstream stream(stringstream::in | stringstream::out);
stream << "Object " << id << " active.";
file.write(stream.str());
它很好地将
int id = 666;
WRITE("Object ", id, " active.");
这在 C++ 中是否可能以可移植的方式,即使使用 Boost.Preprocessor、内联函数和所有技巧。
【问题讨论】:
-
我认为您需要更具体一些,因为就目前而言,您应该能够将原始代码包装在一个名为
WRITE的函数中。 -
您能否使用
...概念使您的WRITE类似于printf? -
所以您只想将任意数量的不同类型值放入文件中?您可以尝试使用可变参数模板。
-
我为这个非常不清楚的问题道歉。我试图改进它,澄清我需要可变数量的参数,并且 使用 stringstream 不是强制性的。
-
一个
std::stringstream默认是开放读写的,不需要用(stringstream::in | stringstream::out)构造它
标签: c++ c-preprocessor variadic-functions boost-preprocessor