-3

私のアルゴリズムは、それぞれが特定のライブラリ (MKL と ITK) を使用する 2 つのバージョンで実装されています。これらの実装は、ライブラリの 1 つしかユーザーが利用できないため提供されています。コンパイル時には、1 つだけをロードしてコンパイルする必要があることに注意してください。ここでどのデザインパターンを使用するべきか混乱しました。

ありがとう

4

1 に答える 1

2

C++ では、ポリシーと呼ばれるテンプレートの方法で「戦略設計パターン」を実行します。これについては、Andrei Alexandrescu の著書「Modern C++ Design」の最初の章で詳しく説明されています。なぜ、テンプレートのように、あなたは尋ねるかもしれませんか? これはコンパイル時であり、使用するコードのみがコンパイルされるためです。

実際にこれを使用した経験があまりないため、あまり説明できませんが、簡単に言えば、テンプレートは型 (int、Person、float など) である必要はなく、関数またはクラス。したがって、次のようなコードを作成できます Printer<ScreenStrategy> p; // or wathever!

于 2013-11-13T01:54:10.493 に答える