ゆるやかに関連するヘッダーライブラリのセットがあり、緊密に結合せずにそれらを連携させたいと考えています。これを行うことを考えた1つの方法は、他のヘッダーファイルをインクルードすることです。それらが見つかった場合は、それに応じてコードを生成できます。したがって、おそらく私はvector.hhにベクトルクラスを持っているでしょう:
#ifndef __VECTOR_HH__
#define __VECTOR_HH__
bunch of vector-y stuff
#endif
次に、別のファイルでcoordinates.hh(座標変換を行うとしましょう):
#ifndef __COORDINATES_HH__
#define __COORDINATES_HH__
#include <vector.hh>
class SomeCoordinateType {
#ifdef __VECTOR_HH__
operator vector() { <convert to vector> }
#endif
}
#endif
ユーザーであるという考えは、必要なヘッダーファイルをすべて取得します。それらがvector.hhヘッダーとcoordinates.hhを取得する場合、そうでない場合は、変換演算子を作成します。これはすべて、失敗しても致命的なエラーを生成しない#includeディレクティブを使用できるかどうかにかかっています。これを行う方法はありますか?