我想端口舊的命令行工具來boost::program_options
。該工具用於許多第三方腳本,其中一些我不能更新,因此更改命令行界面(CLI)不是我的方式。升壓程序選項,空字符串處理
我有一個位置參數,幾個標誌和常規參數。但是我遇到了ranges
的爭論。它應該如下:
> my_too.exe -ranges 1,2,4-7,4 some_file.txt # args[ranges]="1,2,4-7,4"
> my_too.exe -ranges -other_param some_file.txt # args[ranges]=""
> my_too.exe -ranges some_file.txt # args[ranges]=""
基本上,我想boost::po
停止,如果其他參數滿足或者類型不匹配解析參數值。有沒有一種方法可以實現正好這種行爲?
我嘗試使用implicit_value
,但它不工作,因爲它需要CLI方式變更(需要參數用鑰匙進行調整):
> my_too.exe -ranges="1,2-3,7" some_file.txt
我試着用multitoken, zero_tokens
伎倆,但它不」當位置參數被滿足或參數不匹配時停止。
> my_tool.exe -ranges 1,2-4,7 some_file.txt # args[ranges]=1,2-4,7,some_file.txt
任何想法?
看起來像解析結果的後處理,對吧?只是'ac' /'av'破解會更簡單嗎? – ivaigult
你想如何破解它?在常規的'program_options'流程之上唯一的東西是「關鍵部分」,如果你刪除調試,你有5-10行。本質上它是黑客'argc','argv';增強標記後完成。 – luk32