stringhandler、SomeTypeHandler、AnotherTypeHandlerなどのサブクラスを持つクラスハンドラーがあるとします。クラスHandlerは、メソッド「handle」をすべてのサブクラスの共通インターフェースとして定義します。もちろん、「処理」するロジックは、ハンドラーごとに完全に異なります。
だから私がする必要があるのは、handleメソッドに何かの値を渡すことです。特定のクラスは、「何でも」を期待するタイプにキャストできます。
基本的に私が必要としているのは、JavaクラスObject:Dのようなものです。
私が最初に試したのはでしたvoid*
が、どうやらあなたはできないのでB* someB = dynamic_cast<B*>(theVoidPointer)
、そこには運がありません。
私の2番目のアイデアはを使用することでしたboost::any
。ただし、boost :: anyを使用するための要件は、値がコピーで構造化可能でなければならないことです。これは、私のデータには当てはまりません。
これを機能させるためのアイデアはありますか?
ありがとう
編集:メンバーがまったくないSomeDataクラスを使用して、データをそのサブクラスにすることができることはわかっていますが、独自のラッパークラスを作成する必要のないより一般的なアプローチを探しています。