Tôi có một ứng dụng sử dụng Boost.Program_options để lưu trữ và quản lý các tùy chọn cấu hình của nó. Chúng tôi hiện đang di chuyển ra khỏi tệp cấu hình và sử dụng cấu hình được tải cơ sở dữ liệu thay thế. Tôi đã viết một API đọc các tùy chọn cấu hình từ cơ sở dữ liệu theo tên máy chủ và tên cá thể. (cool!) Tuy nhiên, theo như tôi có thể thấy không có cách nào để tự chèn các tùy chọn này vào trong Program_options tăng. Có ai đã sử dụng điều này trước đây, bất kỳ ý tưởng? Các tài liệu từ tăng dường như chỉ ra cách duy nhất để có được công cụ trong bản đồ đó là bởi chức năng lưu trữ, mà đọc từ dòng lệnh hoặc tập tin cấu hình (không phải những gì tôi muốn). Về cơ bản tìm kiếm một cách để tự chèn các giá trị đọc DB vào bản đồ.Bạn làm cách nào để chèn các tùy chọn theo cách thủ công vào boost.Program_options?
Trả lời
câu trả lời của tôi đến một chút quá muộn, nhưng tôi đã dành một thời gian cố gắng làm một cái gì đó tương tự và tìm thấy một giải pháp khó chịu rõ ràng (trong trường hợp bất cứ ai khác đang tìm kiếm này) ...
Nhắc lại rằng boost::program_options::variables_map
xuất phát từ std::map<std::string, boost::program_options::variable_value>
, bạn có thể làm chế biến đồ STL hoàn toàn hợp pháp bao gồm một chèn ...
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-
Không giống như kế thừa program_options từ std :: map to me. Tôi thấy nó bắt nguồn từ: abstract_variables_map. Chưa kiểm tra nếu đó là một std được thiết kế lại :: bản đồ được nêu ra. – Alex
Giải pháp tuyệt vời! – russoue
@ Alex, nó kế thừa từ [cả hai] (http://www.boost.org/doc/libs/1_55_0/boost/program_options/variables_map.hpp). – russoue
Bạn đã xem các hàm extra_parser
hoặc allow_unregistered
của Boost::Program_Options
? Tùy thuộc vào chính xác cách chương trình của bạn hoạt động, một hoặc cả hai chương trình này sẽ có thể hỗ trợ những gì bạn muốn.
- 1. Tôi làm cách nào để chèn danh tính theo cách thủ công?
- 2. Làm cách nào để tôi có thể gọi hộp thoại để đặt tùy chọn máy in theo cách thủ công?
- 3. Làm cách nào để tạo TypeTag theo cách thủ công?
- 4. args4j: trong "cách sử dụng" cách sắp xếp Tùy chọn theo cách thủ công?
- 5. Chèn dữ liệu theo cách thủ công trong Firebase
- 6. QTextEdit. Cách chọn văn bản theo cách thủ công?
- 7. Sử dụng Segue theo cách thủ công
- 8. Làm cách nào để chèn các ngắt dòng thủ công trong các bảng LaTeX?
- 9. Làm cách nào để nhận các mục nhập thủ công?
- 10. Android: Cách thêm tệp vào apk theo cách thủ công?
- 11. Làm cách nào để tự động chèn các tùy chọn mới vào dijit.form.Select
- 12. Làm cách nào để đặt loại đầu vào nút theo cách thủ công trong ASP.NET?
- 13. Làm cách nào để "đăng nhập người dùng" theo cách thủ công bằng WebSecurity + SimpleMembership?
- 14. Làm cách nào để triển khai các tệp chiến dịch lên tomcat theo cách thủ công?
- 15. Javascript theo cách thủ công .onchange() event
- 16. Làm cách nào để tạo Yêu cầu HTTP theo cách thủ công trong .Net?
- 17. Thành phần Trình hướng dẫn FuelUX - cách chọn bước hoạt động theo cách thủ công?
- 18. Làm cách nào để bạn có thể sắp xếp lại một ListView theo cách thủ công trong Android?
- 19. SignalR - Đặt ClientID theo cách thủ công
- 20. Sự kiện thay đổi lửa theo cách thủ công
- 21. Làm cách nào để cài đặt mô-đun XS theo cách thủ công?
- 22. Làm cách nào để cập nhật chế độ xem theo cách thủ công trong Ember.js?
- 23. Tôi làm cách nào để tạo khác biệt thủ công?
- 24. Làm cách nào để cập nhật Maven Index theo cách thủ công?
- 25. Tôi làm cách nào để gọi Action theo cách thủ công?
- 26. Làm cách nào để cân bằng các cột theo cách thủ công trong giấy IEEE nếu sử dụng BibTex?
- 27. Làm cách nào để thêm cookie theo cách thủ công vào một phiên có cookie được đặt cơ giới hóa?
- 28. Làm cách nào để vẽ biểu đồ hình tròn theo cách thủ công trong Android?
- 29. Làm cách nào để đặt tiêu đề REFERER theo cách thủ công trong Javascript?
- 30. Làm cách nào để gửi yêu cầu HEAD theo cách thủ công bằng Firefox?
tôi đã tìm thấy không có cách nào tốt để làm ngắn này của định dạng một char ** như thể nó là một tham số dòng lệnh. Nếu ai đó tìm thấy một cái gì đó cho tôi biết! – Alex