How to accept empty value in boost::program_options에서 부분적인 해결책을 얻었습니다. 이는 인수가 있거나 없을 수도있는 매개 변수에 대해 implicit_value 메서드를 사용하는 것이 좋습니다. 는 그래서 "밝기"매개 변수를 초기화하는 내 전화는 다음과 같습니다
("brightness,b", po::value<string>()->implicit_value(""),
그때 변수지도를 반복하고 문자열의 모든 인수에 대해, 나는 그것이 비어 있는지 확인하고 만약 그렇다면 나는 현재 값을 출력 . 즉, 코드는 다음과 같다 :
// check if we're just printing a feature's current value
bool gotFeature = false;
for (po::variables_map::iterator iter = vm.begin(); iter != vm.end(); ++iter)
{
/// parameter has been given with no value
if (iter->second.value().type() == typeid(string))
if (iter->second.as<string>().empty())
{
gotFeature = true;
printFeatureValue(iter->first, camera);
}
}
// this is all we're supposed to do, time to exit
if (gotFeature)
{
cleanup(dc1394, camera, cameras);
return 0;
}
UPDATE :
./dc-ctl -b500
대신
: 암시 값 지금 인자를 사용할 때의 상기 구문 변경, 소정의 경우, 형태이어야
./dc-ctl -b 500
다른 사람에게 도움이되기를 바랍니다.