0
私は、すべてYAML構成ファイルを読むいくつかのC++プログラムを/etc/foo/config.yml
に持っています。私は、ファイル(yaml-cpp
ライブラリを使用して)グローバル設定のベストプラクティス
YAML::Node load_config();
から設定を読み込む機能を書かれています。
私のプログラムのmain()
関数の最初にこの設定をロードしてから、どこでもアクセスできるようにしたいと思います。は何らかのグローバル変数です。
現在、私の多くの機能では、余分なパラメータが設定ファイルから読み取られた値にすぎません。このグローバル設定を使用することで、関数定義と呼び出しをはるかに簡単で読みやすいものにすることができます。
サイドノート:計算を分散するためにOpenMPも使用しています。つまり、すべての並列プロセスが設定にアクセスできる必要があります。
誰かが、正しい方法でこれがどのように見えるかの小さな例を挙げることができますか?
ありがとうございます!
シュワルツカウンタのアイデアのバリエーションです。あなたは、少なくともいくつかの使用例といくつかの基準を提案する必要があります。また、 'OpenMP'が何と関係しているのかはわかりません。 1つのプログラムで設定を読み込んだり、分散システム間で変更を同期させることについて話していますか? – nwp
@nwpご意見ありがとうございます。私は何をやろうとしているかのように感じています(プログラム内のどこでも利用可能な設定を持つこと)は、すでに解決しているはずのかなり一般的な問題です。私には他の制約はありません。私がOpenMPを使用しているという事実に気づいたのは、ソリューションがプロセス間で構成を共有できるようにすることでした。私はそれが何かと関係しなければならないかどうか本当に分かりません。私はちょうどプログラムの開始時にファイルから設定をロードすることについて話しています、それです。再度、感謝します。 – valentin
シングルトンパターンを見るかもしれませんが、使用する前に2度考えてください。余分なパラメータは、テストを容易にするために、明確な依存関係を持つことができます... – Jarod42