ポリシーを使用して作成されたいくつかのタイプがあります。
template <typename PolicyA, typename PolicyB>
class BaseType : PolicyA, PolicyB
{};
struct MyPolicyA {};
struct MyPolicyB {};
struct OtherPolicyB {};
using SpecializedTypeX = BaseType<MyPolicyA, MyPolicyB>;
using SpecializedTypeY = BaseType<MyPolicyA, OtherPolicyB>;
ここで、コマンド ラインなどからの入力に基づいて、どの SpecializedType を使用するかをエレガントに選択できるメカニズムをいくつか紹介したいと思います。理想的には、次のような適切なタイプのオブジェクトを作成するファクトリ メソッドになります。
auto CreateSelectedSpecializedType(const std::string &key);
// selected has type SpecializedTypeX
auto selected = CreateSelectedSpecializedType("SpecializedTypeX");
アドバイスをいただければ幸いです。ありがとう!