문제

boost.program_options를 사용하여 구성 옵션을 저장하고 관리하는 응용 프로그램이 있습니다. 현재 구성 파일에서 멀어지고 데이터베이스로드 구성을 대신 사용하고 있습니다. 나는 호스트 이름과 인스턴스 이름으로 데이터베이스에서 구성 옵션을 읽는 API를 작성했습니다. (Cool!) 그러나 볼 수있는 한, 이러한 옵션을 Boost Program_options에 수동으로 삽입 할 수있는 방법은 없습니다. 누구든지 이전에 사용한 아이디어가 있습니까? Boost의 문서는 해당 맵에서 물건을 가져 오는 유일한 방법이 저장 기능에 의한 것인데, 이는 명령 줄이나 구성 파일에서 읽는 것 (원하는 것이 아님)입니다. 기본적으로 DB 읽기 값을지도에 수동으로 삽입하는 방법을 찾고 있습니다.

도움이 되었습니까?

해결책

내 대답은 조금 늦어졌지만 비슷한 일을하려고 노력하고 성가신 분명한 해결책을 찾았습니다 (다른 사람이 이것을 찾고있는 경우) ...

그것을 회상합니다 boost::program_options::variables_map ~에서 얻다 std::map<std::string, boost::program_options::variable_value>, 당신은 삽입물을 포함하여 완벽하게 합법적 인 STL 맵 처리를 수행 할 수 있습니다 ...

namespace po = boost::program_options;
po::variables_map vm;
vm.insert(std::make_pair("MyNewEmptyOption", po::variable_value());
vm.insert(std::make_pair("MyNewIntOption", po::variable_value(32, false));
po::notify(vm);

-Edmond-

다른 팁

당신은 extra_parser 또는 allow_unregistered 의 기능 Boost::Program_Options? 정확히 귀하의 프로그램 운영에 따라 프로그램 중 하나 또는 둘 다가 원하는 것을 지원할 수 있어야합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top