我暂时使用的是gcc 2.95.2,而不是sstream
标头,它定义了一个(略有不同,已弃用)strstream
。我现在用
#if __GNUC__ < 3 // or whatever version number it changes
#include <strstream>
#else
#include <sstream>
#endif
然后是:
#if __GNUC__ < 3
strstream str;
str << "Hello World";
#else
stringstream str("Hello World");
#endif
但它真的很烦人。我只是想确保当我切换回更新的gcc(或其他一些编译器)时,我不必重写这些段落。有什么想法吗?
答案 0 :(得分:2)
将mystream.h
设为
#ifndef mystream
#if __GNUC__ < 3 // or whatever version number it changes
#include <strstream>
#define mystream(x,y) strstream x; x << y;
#else
#include <sstream>
#define mystream(x,y) sstream x(y);
#endif
#endif
然后使用mystream.h
标题和mystream
类型。
如果你真的想让它看起来像现代sstream,你可以手动创建一个新类(借助更新的std c ++库源代码或手动创建一个使用strstream作为基础工作方式的代理类)。