クラス「goody」を実装し、次の構造を持つ親パッケージがあります。
parent/include/goody.h
parent/src/goody.cpp
このパッケージは、構造を持つ複数の子パッケージ child_1 から child_n で使用されます
child_i/include/child_details.h
child_i/src/main.cpp
ここで、main.cpp は「goody」を使用します。重要な部分は、child_details.h が「goody」の実装に必要な情報を親に提供することです。goody.h は次のようになります。
#include "child_details.h"
class goody
{
double arr_[child_details::num_elements];
}
ここで、「num_elements」は定数であり、コンパイル時に知る必要があります。
テンプレートがこの種の問題に使用するのに適した構造であることはわかっていますが、(a) すべての child_i パッケージに特殊化を追加したくなく、(b) 'num_elements' が親パッケージのいたるところにあります多くのテンプレート固有のコードが必要になりますが、これは避けたいと思います。
したがって、私の質問は次のとおりです。私のパッケージを CMake で整理するためのクリーンな方法は何ですか? 子ごとに 'goody' のインスタンスが存在するため、parent 内で親パッケージをコンパイルできません。一方、親は子について知る必要がないため、親の内部でこれらのインスタンスをすべてコンパイルすることは避けたいと思います。親パッケージ内で生成できるコンパイルされていないオブジェクトのようなものはありますか?それを各子パッケージでコンパイルする必要がありますか?