これは、言語に組み込まれたものではないことを理解しています(つまり、C++ではeval()メソッドがありません)。また、実行時の文字列入力の内容をプログラムの変数名と関連付けることは非常に困難であると理解しています。それにもかかわらず...プログラム変数を参照するときに文字列を解釈します。 Geant4単位
リサーチグループのユーザーがデータベースファイルにマテリアルとマテリアルのプロパティを追加し、それらのマテリアルを1つのコマンドで呼び出してGeant4でのマテリアル構築が容易になるようにするための小さなクラスを作成しようとしています。残念ながら、Geant4はヘッダファイルを使用してcm3、mm、MeV、kgなどの単位の実際の変数を定義し、ユニットを内部Geant4システムに変換します。私は、これらを対応する文字列にリンクするマップがあるとは思わない。この事実の事実は、Geant4は物理モデリングのためのものであり、ユニットのバットトンがあるということです。 Geant4が拡張可能で、私が知らない新しいユニットを望むいくつかの新しい物理コードが登場するかもしれないので、それらをすべてマッピングできる本当の方法はありません。私がやりたい何
は、テキストファイルからユニットを説明する文字列を取得し、何とか私は、変換を行うことができますので、同じ名前の実際の変数へのものと一致しています。これをハックして消す方法はありますか、それとも全く不可能ですか?
もちろん、データベースのすべてのエントリについて内部のユニットに変換させることができますが、それはすぐに醜くなり、エラーを追跡するための大きな原因になります(小数点が15 )。
おかげ
私は基本単位定義をデータベースファイルに入れてユニットテーブルを作成することについては考えていませんでした。それは本当に良い考えです。ありがとう! – user487100