考虑以下代码。
int id = 666;
stringstream stream(stringstream::in | stringstream::out);
stream << "Object " << id << " active.";
file.write(stream.str());
它很好地将 << 前面的所有值组合在一个字符串中。我很想发现一个更短、更易于使用且代码重复更少的版本。此外,上面的代码只是一个例子,命令应该接受变量和字符串的任意组合。理想情况下是这样的:
int id = 666;
WRITE("Object ", id, " active.");
即使使用 Boost.Preprocessor、内联函数和所有技巧,这在 C++中是否可能以可移植的方式实现。