2012-07-30 14 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

हाँ यह काम करता है। एक महत्वपूर्ण चेतावनी: स्थितीय विकल्प के रूप में अच्छी तरह से एक नियमित रूप से विकल्प के रूप में जोड़ा जाना चाहिए: 'पो :: positional_options_description पी;' 'p.add (" कमांड ", -1);' 'बढ़ावा :: program_options :: options_description desc; ' ' desc.add_options() ("आदेश", "पढ़ा | लिखना | पाते हैं | संस्करण | मदद"); ' ' पो :: variables_map वीएम; ' ' पो :: स्टोर (पीओ :: command_line_parser (एसी, एवी)। विकल्प (desc) .positional (पी) .run(), vm); ' –

संबंधित मुद्दे