2014-05-22 13 views
5

boost::program_options कैसे बहुसंख्यक और स्थितित्मक विकल्पों की अनुमति दी जाती है जब इनपुट को पार्स या प्रबंधित करते हैं?बूस्ट प्रोग्राम विकल्प: स्थितित्मक और बहुमुखी विकल्प

उदाहरण के लिए:

./app.sample pos1 --multitokenoption a b c d pos2 

बढ़ावा कैसे पता है जब एक multitokenoption खत्म और एक स्थितीय विकल्प शुरू होता है?

जाहिर है, सबसे तार्किक अनुमत व्यवहार यह होगा कि एक बहुमुखी विकल्प अंतिम पैरामीटर के रूप में उपस्थित होना चाहिए, जैसा फ़ंक्शन पैरामीटर में डिफ़ॉल्ट तर्कों के साथ होता है, लेकिन दस्तावेज़ीकरण इसके बारे में कुछ नहीं कहता है।

+1

आपको क्यों लगता है कि 'multitokenoption' खत्म हो जाएगा? यह सभी शेष टोकन खाएगा। यदि 'pos2' की आवश्यकता है, तो यह एक अपवाद फेंक दिया जाएगा। – HEKTO

उत्तर

4

तीन तरह से एक multitoken विकल्प के लिए मूल्यों के अंत चिह्नित करने के लिए कर रहे हैं:

  1. एक अन्य विकल्प: स्थितीय विकल्प के लिए

    ./app.sample pos1 --multitokenoption a b c d --regularoption v pos2 
    
  2. विकल्प का नाम (लगभग # 1):

    ./app.sample pos1 --multitokenoption a b c d --pos2 pos2 
    
  3. डबल-पानी का छींटा:

    जादुई कुछ भी नहीं -
    ./app.sample pos1 --multitokenoption a b c d -- pos2 
    

अन्यथा बहु टोकन विकल्प जहां रोकने के लिए पता नहीं चलेगा।

+1

लेकिन बूस्ट :: प्रोग्राम_ऑप्शन में ऐसे डबल डैश के लिए कोई मूल समर्थन नहीं है, अगर मैं गलत नहीं हूं। –

+2

यह मेरे लिए काम करता है। बूस्ट = 1.55.0, कंपाइलर = जीसीसी 4.8.1, ओएस = जुबंटू 3.11.10.3 – HEKTO

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