2011-11-09 16 views
5

我使用程序選項來解析我的應用程序的命令行選項。如何在不使用變量的情況下啓用Boost Program Options中的其他選項?

我有幾個選項,如-Ox,-Oy,-Oz,...我想要一個超級選項-Oall使Ox和Oy以及另一個使Oz和Ow成爲可能的-OOsub。

有沒有辦法使用Boost程序選項做到這一點?

首先,我想檢查Oall的值,然後手動啓用Ox和Oy,但在解析後無法編輯值。

我想避免使用變量來存儲Ox,Oy的值,因爲我可以有很多這樣的選項。

感謝

+0

如果你想避免了'Ox','Oy'和'Oz'變量,如何那你打算訪問他們的價值觀?換句話說,當他們單獨設置時,您如何計劃觸發與這些選項相關的邏輯? – rcollyer

+0

我想說options.count(「牛」) –

+1

瞭解。但是,在'program_options'中沒有辦法將一個參數與另一個參數的出現聯繫起來。但是,您可以調整@CharlesB的方法,這樣,無論您何時檢查'options.count(「Ox」)',您還可以檢查options.count(「Oall」)'。 – rcollyer

回答

1

我看到更多的在你的程序的邏輯,所以我懷疑程序選項提供了這一點。 只需使用

if (Oall) 
{Ox = Oy = Oz = true;} 

和這樣

+1

這有效,但有了這個解決方案,我必須使用映射每個選項的變量,如果可能的話,我想避免這種情況。 –

+0

最後,這似乎是最好的解決方案。謝謝 –

相關問題