1

共通のソース コードを共有するさまざまなプログラムの型に一意の識別子を自動的に (つまり、手動ではなく) 割り当てる方法はありますか? 別の「タイプXを使用する」ことを伝えるプログラムが必要で、もう一方のプログラムはその「X」が何を意味するかを知っています。もちろん、実行時に型を構築できないため、ソースコードを (部分的に) 共有します。ある種の識別子 (整数または文字列) から、たとえば、指定された型のオブジェクトを返すファクトリ関数へのマップを自動的に構築する方法が必要です。 .

私が選ぶ明白な選択はname()inの結果ですstd::type_infoが、私が理解しているように、それはタイプ間で異なることさえ保証されておらず、std::type_infoインスタンスのアドレスを使用することは確かにプログラム間で機能しません。

C++11 は使えませんが、Boost は使えます。

4

2 に答える 2

0

ブーストシリアル化を見ることができます。ポリモーフィッククラスの一意のIDを自動的に生成し、非ポリモーフィッククラスの明示的な登録を可能にします。

于 2011-12-11T13:36:14.723 に答える
0

ある種の識別子(整数または文字列)から、たとえば指定されたタイプのオブジェクトを返すファクトリ関数へのマップを自動的に構築する方法が必要です。

いずれにしても、標準 C++ 内ではありません。

于 2011-12-11T12:21:36.773 に答える