2017-12-02 14 views
0

boost.program_options 라이브러리는 프로그램 실행시 명령 줄에 제공된 매개 변수를 저장하고 프로그래밍 방식으로 액세스 할 수 있도록합니다.CLI 구문 분석이 끝난 후 program_options 및 매개 변수를 추가 할 수 있습니까?

옵션/매개 변수를 인스턴스화하고 프로그램이 실행되고 이미 모든 CLI 인수를 구문 분석 한 후 옵션의 값 매개 변수를 변경하는 라이브러리 함수 (나에게 알려지지 않았거나 쉽게 코드 할 수 있음)를 호출하는 것이 현실적입니까? 즉, 소스 코드에 이미 구성된 기존 옵션을 단순히 시작 (즉, 추가) 할 수는 있지만 호출 할 때 언급되지 않았습니까?

왜? 프로그램에 GUI가 있고 사용자가 명령 줄에 설정된 일부 설정을 업데이트하려고한다고 가정 해 보겠습니다.

답변

0

다시 구문 분석해야합니다.

program_options_descriptions의 동적 추가는 이미 구문 분석 된 내용을 변경하기위한 것이 아니라 추가 옵션을 추가하는 플러그인을 사용하는 경우에 더 유용합니다. 또는 여러 옵션 집합 (기본, 고급, 환경 변수 및 구성 파일 소스)을 가져 와서 variables_map을 채 웁니다.

options_description에는 또 다른 options_description 인스턴스를 가져 오는 add() 오버로드가 있으며 해당 인스턴스의 옵션이이 인스턴스에 추가됩니다. 그러나 이러한 추가로 인해 variable_map의 이미 구문 분석 된 항목이 변경되지는 않습니다.