1

XMLファイルが解析されるときにオブジェクトで呼び出される必要がある関数のunordered_mapがあります。
boost::functionにはboost::function_baseという名前の基本クラスがあることがわかりましたが、関数の署名がないため、予想どおりに呼び出すことができません。
これらの関数はすべてセッター関数であるため、voidを返し、不明なタイプのパラメーターを1つだけ持つことを保証できます。
私が避けようとしているif-else-ifブランチ以外のタイプを解決するためのより良い方法はありますか?

4

2 に答える 2

2

boost::variant を使用するのが最善の方法です。とにかく、パラメータの型が不明な関数をどのように呼び出すことができるでしょうか?

于 2010-09-12T18:30:19.723 に答える
0

boost::functionコンパイル時のポリモーフィズムのみを目的として設計されています。通常の関数ポインタを使用しないのはなぜですか? いえ

typedef void (*function_type)(void *);
于 2010-09-12T18:27:13.260 に答える