부스트 후 비 플래그 및 비 옵션 토큰을 얻는 방법 :: program_options 내 명령 줄 아르기

StackOverflow https://stackoverflow.com/questions/1314717

문제

파이썬에서는 내를 만들 수 있습니다 optparse 옵션과 비 옵션/플래그를 두 개의 다른 버킷으로 자동 필터링하는 인스턴스 :

(options, args) = parser.parse_args()

부스트 :: program_options를 사용하면 나머지 비 옵션 및 비 플래그 토큰 인 토큰 목록을 어떻게 검색합니까?

예를 들어 내 프로그램에 깃발이있는 경우

--foo 
--bar BAR

그런 다음 명령 줄을 전달합니다.

--foo hey --bar BAR you

"Hey"및 "You"로만 구성된 목록을 어떻게 구할 수 있습니까?

도움이 되었습니까?

해결책

IIRC, 당신은 조합을 사용해야합니다 positional_options_description 그리고 숨겨진 옵션. 아이디어는 (1) 일반 옵션을 추가하고 이름을 부여하는 것입니다. --positional=ARG, (2) 도움말 설명에 해당 옵션을 포함하지 마십시오. (3) 구성 command_line_parser 모든 위치 인수를 마치 취급합니다 --positional 지정되고 (4) 위치 인수를 검색합니다. vm["positional"].as< std::vector<std::string> >().

소스 트리 어딘가에 예제가있을 수 있지만 지금은이 컴퓨터에 없습니다.

다른 팁

예는 다음과 같습니다.

namespace po = boost::program_options;    
po::positional_options_description m_positional;
po::options_description m_cmdLine;
po::variables_map m_variables;

m_cmdLine.add_options()
    (/*stuff*/)
    ("input", po::value<vector<string> >()->composing(), "")
;
m_positional.add("input", -1);
po::parsed_options parsed = po::command_line_parser(argc, argv)
                        .options(m_cmdLine)
                        .positional(m_positional)
                        .allow_unregistered()
                        .run();
// store, notify, etc

그런 다음 "입력"명명 옵션을 문자열의 벡터로 가져 오면 모두 설정됩니다.

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