メインの cpp ファイルに、コンパイル前に型を選択するための typedef とプリプロセッサ ディレクティブを使用して、特定の型のテンプレート アルゴリズムを実装するバイナリをインスタンス化できるディレクティブのセットがあるとします。
#ifdef MS1
typedef MSVariableInterface1 InterfacorType;
#else
#ifdef MS2
typedef MSVariableInterface2 InterfacorType;
#endif
#endif
int main()
{... //use InterfacorType as the type for template
プリプロセッサ変数のさまざまな可能な値を認識して、さまざまなテンプレートのインスタンス化を使用して、cmakelists がコードを自動的にコンパイルするようにしたいと考えています。どうすればそれができるか知っていますか?
さらに、これは問題に対処する正しい方法ではないと思います。各テンプレートを使用できるタイプのセットを考慮して、(オプションで複数の) テンプレート コードのさまざまなインスタンス化を「展開」する別の提案があります。このようなソリューションを使用すると、インスタンスごとにバイナリを作成するのではなく、単一のバイナリを作成してすべてのケースを処理できます (対象のインスタンスを選択できる引数を使用)。ありがとう!