概要
Xerces-C++ は、バージョン 3.0.0 に大きなインターフェイスの変更があった。
このようなことを事前に予期してか Xerces-C++ にはバージョンに応じた条件付き取り込みの仕組みが提供されている。
xercesc/util/XercesVersion.hpp にバージョン番号に関する定数が定義されている。
例えば Xerces-C++ 2.8.0 では、バージョン番号に関する定数は
#define XERCES_VERSION_MAJOR 2 #define XERCES_VERSION_MINOR 8 #define XERCES_VERSION_REVISION 0
であり、Xerces-C++ 3.0.0 では、
#define XERCES_VERSION_MAJOR 3 #define XERCES_VERSION_MINOR 0 #define XERCES_VERSION_REVISION 0
と定義されている。
これを使うことでバージョンの違いを吸収することができる。
多くの場合は、Xerces-C++ 3.0.0 以降とそれより前の違いを吸収することになるだろう。
その場合の書き方は以下の通りだ。
#if XERCES_VERSION_MAJOR >= 3 // Xerces-C++ 3.0.0 以降のコード #else // Xerces-C++ 3.0.0 より前のコード #endif
局所的になるとは考えられるが、両方をサポートしていくのは難しい。
よほどの理由がない限り、3.0.0 以降を使う(新規開発なら、もちろんこちらがオススメだと思う)か 3.0.0 より前を使い続けるか、どこかのタイミングで判断を下すのが懸命と考えられる。
コメント
コメントはありません。 コメント/xerces/versioned