私が行う必要があるのは、プログラムの残りの部分とともにコンパイルする必要がある定数値を「微調整」することですが、変更するごとに結果を確認する必要があります毎回値を取得し、プログラム全体を再コンパイルします。だから私はある種のプレーンテキスト設定ファイルを考えて、その中の数値を変更するたびにリロードし、プログラムの一部を再初期化して新しい値を処理します。それは私が頻繁に行う何かが、私は何をしたいのか、この時間は、次の構文を使用して、有効なインクルージョンファイルの形でこの設定ファイルを持っていることです。実行時にインクルードファイルを評価するC++
const MyStructure[] =
{
{ 1, 0.5f, 0.2f, 0.77f, [other values...] },
{ 3, 0.4f, 0.1f, 0.15f, [other values...] },
[other rows...]
};
私のようなインタプリタ言語を使用していた場合Perl、私はeval()
関数を使用していましたが、もちろんC++では不可能です。そして、私がC++でeval()関数を持つ可能性について他の質問を読んだが、私が望むのは、このコードを評価し実行することではなく、それを解析し、それらが属する変数に値を入れることです。
私は上記のC構文を解析するために正規表現を使用しますが、RegExpはまだC++で使用する価値がないので、別の方法を提案できますか?
開発段階でのみこのファイルを解析する必要があります。私は#include
そのプログラムがリリースの準備ができているときにそれを行います。
通常のファイルからのデータを 'コンス'変数にロードするだけです。あなたは「この変数は 'const'ですが時にはそれが変化します」から何も得られません。 – nwp
なぜデータファイルを持っていないのですか? – KonstantinL
私は英語が私の母親ではないということを知っていますが、開発段階でこのファイルを変更する必要があると私は言っていましたが、投稿がはっきりしないとは思わない。プログラムが完了すると、そのデータは一定のままで、もはやそれ以上変わらない必要があります。これ以上変更する必要のないデータファイルを持つことに意味はありません。私の主な目標は、開発プロセスをスピードアップして、データ構造内の何かを変更する必要があるたびにプログラム全体を再コンパイルすることを避けることでした。 –