2012-07-30 4 views
9

ブースト:: program_options:せずにコマンドを指定する方法 - または「」「 - 」私はこの構文でコマンドラインユーティリティを実装するために、ブースト:: program_optionsを使用してい

myutil command [--in file_name] [---out file_name] 

"コマンドは」必須であり、次のいずれかです。

read | write | find | version | help 

ものがあることである 『コマンドは』 --または-を必要とすべきではないと私はブースト:: program_optionsでそれを行う方法を発見していません。何の名前を持っていない

答えて

10

コマンドラインオプションは、positional optionsと呼ばれています。

po::positional_options_description p; 
p.add("command", -1); 
po::variables_map vm; 
po::store(po::command_line_parser(ac, av). 
      options(desc).positional(p).run(), vm); 
+12

はい、これは動作します。 一つの重要な注意点:位置オプションが同様に定期的なオプションとして追加する必要があります。 'PO :: positional_options_descriptionのP;' 'p.add( "コマンド"、-1);' 'ブースト:: program_options :: options_descriptionのDESC; ' ' desc.add_options()( "コマンド"、 "読む|書き込み|見つける|バージョン|ヘルプ"); ' ' PO :: variables_mapのVM; ' ' PO :: store(po :: command_line_parser(ac、av).options(desc).positional(p).run()、vm); ' –

関連する問題