Tôi đang sử dụng boost :: program_options library để xử lý tham số dòng lệnh. Tôi cần chấp nhận tên tệp qua tùy chọn -r, trong trường hợp nếu nó trống (-r được cung cấp không có tham số), tôi cần sử dụng stdin.Làm thế nào để chấp nhận giá trị rỗng trong boost :: program_options
desc.add_options()
("replay,r", boost::program_options::value<std::string>(), "bla bla bla")
Trong trường hợp này, quảng cáo sẽ không chấp nhận -r không có thông số và ném ngoại lệ. tùy chọn default_value() không hoạt động tốt vì nó sẽ làm cho giá trị trả về của thư viện ngay cả khi người dùng không đưa ra tùy chọn -r.
Bất kỳ ý tưởng nào về cách làm việc xung quanh?
Cảm ơn bạn! Hoạt động hoàn hảo – cppalex
@Vladimir Prus, đây là một câu hỏi khác về các tùy chọn không có giá trị tại đây http://stackoverflow.com/questions/7174781/boost-program-options-notifier-for-options-with-no-value Tôi muốn có thể thêm bộ thông báo cho các tùy chọn đó hoặc viết một bản vá để bật nó. Xin vui lòng, bình luận, cảm ơn. – Riga
Thật không may, điều này không hoạt động khi một giá trị rỗng được đưa ra trong tập tin INI, vì một lý do nào đó. –