0

私は一時的に 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 (または他のコンパイラ) に切り替えるときに、これらのパッセージを書き直す必要がないようにしたいだけです。何かご意見は?

4

1 に答える 1

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 を基本的な動作方法として使用するプロキシ クラスを手動で作成します)。

于 2008-12-10T18:41:19.627 に答える