ブーストからptr_mapに自分のクラスオブジェクトを挿入するにはどうすればよいですか。オブジェクトはテンプレート化されているため、マップで静的タイプ名を使用することはできません。だから私はしました:
ptr_map<string, any> someMap;
私のクラスはboost::noncopyableを継承しています。
someMap.insert("Test", new MyClass<SomeTemplate>());
エラーは次のとおりです。エラー:no matching function for call to ‘boost::ptr_map
。
UPD:ラッパーを作成し、boost::anyは使用しないでください。それで:
class IWrapper { };
class MyClass : public IWrapper { };
ptr_map<string, IWrapper> someMap;
someMap.insert("Test", new MyClass<SomeTemplate>());
なぜそれが機能しないのですか(同じエラー)?継承されたクラスを親インターフェイスに渡すことができます。どうしたの?