У меня есть приложение, которое использует Boost.Program_options для хранения и управления параметрами конфигурации. В настоящее время мы удаляемся от файлов конфигурации и используем конфигурацию, загруженную в базу данных. Я написал API, который считывает параметры конфигурации из базы данных по имени хоста и имени экземпляра. (cool!) Однако, насколько я вижу, нет способа вручную вставить эти опции в boost Program_options. Кто-нибудь использовал это раньше, какие-то идеи? Документы из boost, похоже, указывают, что единственный способ получить материал на этой карте - это функция store, которая либо читается из командной строки, либо из файла конфигурации (не то, что я хочу). В основном ищет способ вручную вставить значения чтения DB в карту.Как вы вручную вставляете опции в boost.Program_options?
ответ
Мой ответ приходит слишком поздно, но я провел некоторое время, пытаясь сделать что-то подобное и нашел раздражающе очевидное решение (упаковывают кого-либо еще ищет это) ...
boost::program_options::variables_map
Напоминая, что происходит от std::map<std::string, boost::program_options::variable_value>
вы можете сделать обработку совершенно правовую СТЛ карту включая вставки ...
namespace po = boost::program_options; po::variables_map vm; vm.insert(std::make_pair("MyNewEmptyOption", po::variable_value()); vm.insert(std::make_pair("MyNewIntOption", po::variable_value(32, false)); po::notify(vm);
-Edmond-
Не похоже, что program_options наследует от std :: map для меня. Я вижу, что это происходит из: abstract_variables_map. Не проверено, если это еще раз обновленная std :: map. – Alex
Отличное решение! – russoue
@Alex, он наследует [оба] (http://www.boost.org/doc/libs/1_55_0/boost/program_options/variables_map.hpp). – russoue
Просмотрели ли вы extra_parser
или allow_unregistered
функции Boost::Program_Options
? В зависимости от того, как работает ваша программа, один или оба из них должны иметь возможность поддерживать то, что вы хотите.
- 1. Boost.Program_options - свободный (значение без опции)
- 2. Как вы копируете и вставляете в Pycharm?
- 3. Как вы вставляете вложенные векторы в Clojure?
- 4. Как вы вставляете вкладку в строку?
- 5. Как вы вставляете репозиторий в тест?
- 6. Как вы вставляете знак «<» в mediawiki?
- 7. Как вы вставляете изображение в NSAttributedString?
- 8. Как вы вставляете объект в одноэлемент?
- 9. Как вы вставляете несколько CMSRepeaters в Kentico?
- 10. Как вы вставляете список элементов в R
- 11. Как вы вставляете jQuery в html-страницу?
- 12. Как вы вставляете элементы complexType в xsd?
- 13. Как вы вставляете HTML в массив?
- 14. Как вы вставляете QDialog в пользовательский делегат?
- 15. Как вы вставляете файлы ресурсов в C?
- 16. Prolog - как вы вставляете элемент в список
- 17. Как вы вставляете шаблон в другой шаблон?
- 18. Как вы вставляете в отсортированный список?
- 19. Как вы вставляете строку внутри массива 2d
- 20. Как вы вставляете изменяемый JPanel внутри JTextPane?
- 21. Как вы вставляете плагин на страницу Wordpress?
- 22. Как вы вставляете vim без комментирования кода?
- 23. Как вы вступаете (вставляете) массив MySQL?
- 24. Синтаксис Boost.Program_options
- 25. Boost.Program_options фиксированное количество жетонов
- 26. как вы вставляете ассоциативный массив в таблицу оракула в php
- 27. В Python как вы вставляете ответ raw_input в середину строки?
- 28. Как вы вставляете список объектов в конструктор в Castle Windsor
- 29. Как вы вставляете переменную в переменную в Jinja2?
- 30. Как вы вставляете привязку в середину предложения TextBlock в WPF?
Я никогда не нашел хороший способ сделать это короткий форматирования полукокса **, как если бы это параметр командной строки. Если кто-то найдет что-то, дайте мне знать! – Alex