C でコマンド ライン引数を解析する必要があります。引数は基本的に int または float で、デフォルト値と範囲制約があります。
次のようなものを実装し始めました。
option_float(float* out, int argc, char* argv, char* name, description,
float default_val, int is_optional, float min_value, float max_value)
たとえば、次のように呼び出します。
float* pct;
option_float(pct, argc, argv, "pct", "My super percentage option", 50, 1,
FALSE, 0, 100)
ただし、車輪の再発明はしたくありません。
私の目的は、範囲制約のエラーチェックを行い、オプションがオプションではなく設定されていない場合にエラーをスローすることです。そして通常、usage() 関数によって与えられるヘルプ メッセージを生成します。
使用法テキストは次のようになります。
--pct My super percentage option (default : 50). Should be in [0, 100]
私は getopt から始めましたが、やりたいことがあまりにも限られているため、このような単純なユースケースではまだコードを書きすぎる必要があると感じています。
どのような代替手段をお勧めしますか?