2014-09-05 2 views
1

나는 약간의 옵션이 -length-strength과 같이 있으며 사용자가 이름을자를 수 있도록 추측을 허용하고 싶습니다.Boost :: program_options로 추측 가능하고 추측 할 수없는 옵션을 함께 구문 분석 할 수 있습니까?

반면에 일부 옵션은 -K1-K10과 같이 서로를 포함하는 짧은 이름을 가지며 물론 추측 할 수 없도록 설정해야합니다.

나는 또한 위치 옵션을 가지고 있으며 옵션에 대한 모든 표준 검사를 유지하고자합니다. 예를 들어 알 수없는 (잘못 입력 한) 옵션을 허용하지 않으려합니다. 내가 부스트 :: program_options와이를 달성 할 수있는 방법이 존재하는지 알고 싶습니다

...

답변

1

는 지금까지 I read the docs로, allow_guessing 당신이 원하는 않습니다.

사실, 그것은 전혀 추측 할 수 없습니다 : 그들은 명확하게 긴 옵션를 식별하는 경우

allow_guessing

는 긴 옵션 을 단축 철자를 허용합니다. 추측이 유효한 경우 긴 옵션 이름은 다른 긴 옵션 이름의 접두어 여야합니다.

물론 후자는 놀라운 제한 사항처럼 들리지만 실제로는 그렇지 않습니다. 단지 --Kool--KoolAid이 있으면 추측하면 --KoolAid으로 축약 될 수 있기 때문에 전체가 --Kool 일 때 모호한 것으로 나타납니다.

--KoolA은 모호하지 않습니다. 긴 형식 옵션이 아니기 때문에 -K (단일 대시 참고)이 아니 어서 결코 약어가 될 수 없습니다.

+0

당신이 옳습니다! 나는 잘못 생각했다 "추측이 유효하다면 긴 옵션 이름은 다른 긴 옵션 이름의 접두사가 없어야한다." 당신이'- K1'과'- K10' '과 같은 옵션을 정의 할 수 없다고 추측해서 사용하고 싶다면 이것은 사실이 아닙니다. 현재 버전의 Boost :: po는 예상대로 작동합니다. – DarioP