コマンドライン引数からユーザーの入力を読み取るために、boost::program_optionsを使用しています。それは非常にうまく機能し、役立つ使用法メッセージを出力し、入力を適切に検証することができます。ただし、デフォルトでは、長いオプション名は二重ダッシュの後に来る必要が--my_long_option
あり、短いオプションは単一のダッシュの後に来て、単一の文字でなければなりません。-m
.
どちらにも方法はありますか...
- 単一の
-
?の後に長いオプションを許可する - 短いオプションに複数の文字を含めることを許可しますか?
したがって、次のようなコマンドラインを使用できます
./a.out -myopt1 foo -myopt2 bar
2 つの可能性は同じ効果を持つはずですが、プログラミングの観点からは最初の方が優れています。boost::program_options::command_line_styleを見てみましたが、必要なことを実行できるようには見えません。
ありがとう
編集:以下の受け入れられた回答にさらに、そのスタイルを使用するには、次のコードを追加する必要があります(ブーストドキュメントの命名規則に従って)
po::store(
po::command_line_parser(ac,av)
.options(desc)
.style(
po::command_line_style::unix_style
| po::command_line_style::allow_long_disguise)
.run(),
vm);