1

C ++で開発されたルールエンジンの場合、コア機能の1つは値型です。私がこれまでに持っているのは、COMスタイルのVARIANTに少し似ています。各値は、そのタイプを知っています。型変換にはいくつかのルールがありますが、少し面倒です。

事前に構築されたシステム全体を使用しなくても、これを解決するために使用できる優れたドロップイン値クラスがあるかどうか疑問に思いました。たとえば、ブーストには何かがありますか?

4

1 に答える 1

6

boost::anyまたはboost::Variantをお探しですか?

基本的に、バリアントの実装には3つのタイプがあります。

  1. タイプ間で自由にキャストできるタイプ(タイプされていない言語を考えてください)-boost::lexical_castここであなたの友達、またはboost::variant...
  2. 任意のタイプを保持できるが、タイプセーフであるタイプ-たとえば、で初期化されint、とどまり、int他のもののように暗黙的に扱われることを許可しない-これはboost::anyタイプです
  3. はあらゆるタイプを許可します-エラーチェックなしであなたが望むものにキャストし、タイプ情報は保持されません-考えますvoid*
于 2010-01-10T14:44:14.847 に答える