Quali pacchetti si utilizzano per gestire le opzioni della riga di comando, le impostazioni e i file di configurazione?Come gestite le opzioni della riga di comando e i file di configurazione?
Sto cercando qualcosa che legge opzioni definite dall'utente dalla riga di comando e/o dai file di configurazione.
Le opzioni (impostazioni) devono essere divisibili in diversi gruppi, in modo da poter passare diverse (sottoinsiemi di) opzioni a diversi oggetti nel mio codice.
Conosco boost::program_options
, ma non riesco ad abituarmi allo API
. Esistono alternative leggere?
(BTW, usi mai un oggetto opzioni globali nel codice che può essere letto da qualsiasi luogo, oppure puoi prendere in considerazione che il male?)
+1 per boost :: program_options, ma solo giusto! Farei attenzione nell'usare le opzioni del programma come un singleton. Siamo stati morsi da questo in quanto ora dobbiamo aggiungere diversi set di opzioni per diversi file. Per prima cosa è necessario tornare indietro e rimuovere il singleton in modo da poter memorizzare i diversi set di opzioni per ogni singolo file. –
Buon punto, Richard. Io uso boost :: program_options per un gioco, e ovviamente 1 set di opzioni è sufficiente per processo, ma per scopi diversi questa sarebbe una cattiva idea. – rlbond
Sei ancora favorevole a boost :: program_options? Sembra non essere più sviluppato (il sito web di docs è stato modificato l'ultima volta nel 2004). Fa uso/è compatibile con C++ 11? Quando leggi tra le righe del tuo post, in realtà non è affatto una buona raccomandazione: * Assicurati solo di fare dei boatload di test delle unità, perché se ottieni la sintassi sbagliata otterrai errori di runtime * è una grande bandiera rossa! – Walter