2014-05-22 13 views
5

Làm cách nào để phân tích cú pháp hoặc quản lý đầu vào khi cả hai tùy chọn đa ngôn ngữ và vị trí được phép?Tùy chọn chương trình tăng cường: tùy chọn vị trí và đa ngôn ngữ

Ví dụ:

./app.sample pos1 --multitokenoption a b c d pos2 

Làm thế nào để thúc đẩy biết khi nào một multitokenoption kết thúc và một lựa chọn vị trí bắt đầu? Rõ ràng, hành vi được phép logic nhất sẽ là một tùy chọn đa nhiệm phải có mặt như tham số cuối cùng, giống như xảy ra với các đối số mặc định trong các tham số hàm, nhưng tài liệu không nói gì về nó.

+1

Tại sao bạn nghĩ rằng ‘multitokenoption' sẽ kết thúc? Nó sẽ ăn tất cả các thẻ còn lại. Nếu 'pos2' là bắt buộc, sau đó nó sẽ là một ngoại lệ ném. – HEKTO

Trả lời

4

Có ba cách để chấm dứt chuỗi các giá trị cho một lựa chọn multitoken:

  1. Một tùy chọn khác:

    ./app.sample pos1 --multitokenoption a b c d --regularoption v pos2 
    
  2. tên Option cho tùy chọn vị trí (gần như # 1):

    ./app.sample pos1 --multitokenoption a b c d --pos2 pos2 
    
  3. Dấu gạch ngang:

    ./app.sample pos1 --multitokenoption a b c d -- pos2 
    

Nếu tùy chọn đa thẻ sẽ không biết được nơi để dừng lại - không có gì huyền diệu.

+1

Nhưng tăng :: program_option không có hỗ trợ gốc cho dấu gạch ngang kép, nếu tôi không sai. –

+2

Nó hoạt động cho tôi. Boost = 1.55.0, Trình biên dịch = GCC 4.8.1, OS = Xubuntu 3.11.10.3 – HEKTO

Các vấn đề liên quan