Bạn sử dụng gói nào để xử lý các tùy chọn dòng lệnh, cài đặt và tệp cấu hình?Làm cách nào để bạn xử lý các tùy chọn dòng lệnh và tệp cấu hình?
Tôi đang tìm kiếm thứ gì đó đọc tùy chọn do người dùng xác định từ dòng lệnh và/hoặc từ tệp cấu hình.
Tùy chọn (cài đặt) sẽ được chia thành các nhóm khác nhau, để tôi có thể chuyển các tùy chọn khác nhau (tập hợp con) cho các đối tượng khác nhau trong mã của tôi.
Tôi biết về boost::program_options
, nhưng tôi không thể quen với API
. Có lựa chọn thay thế trọng lượng nhẹ không?
(BTW, bạn có bao giờ sử dụng một cài đặt global đối tượng trong mã của bạn có thể được đọc từ bất cứ nơi nào? Hoặc bạn sẽ xem xét ác đó?)
+1 cho tăng :: program_options, nhưng chỉ! Tôi sẽ cẩn thận với việc sử dụng các tùy chọn chương trình như một singleton. Chúng tôi đã bị cắn bằng cách thực hiện việc này vì chúng tôi cần thêm các tùy chọn khác nhau cho các tệp khác nhau. Đầu tiên chúng ta cần phải quay trở lại và loại bỏ singleton để chúng ta có thể lưu trữ các bộ tùy chọn khác nhau cho từng tệp riêng lẻ. –
Điểm tốt, Richard. Tôi sử dụng boost :: program_options cho một trò chơi, và rõ ràng 1 bộ tùy chọn là đủ cho mỗi quá trình, nhưng cho các mục đích khác nhau, đây sẽ là một ý tưởng tồi. – rlbond
Bạn vẫn ủng hộ tăng cường :: program_options? Dường như nó không còn được phát triển nữa (trang web tài liệu được sửa đổi lần cuối năm 2004). Nó có sử dụng/tương thích với C++ 11 không? Khi đọc giữa các dòng bài viết của bạn, nó thực sự không phải là một khuyến nghị tốt cả: * Chỉ cần chắc chắn để làm boatloads của đơn vị kiểm tra, bởi vì nếu bạn nhận được cú pháp sai, bạn sẽ nhận được lỗi thời gian chạy * là một lá cờ đỏ lớn! – Walter