使用ARGO命令行解析器:未知选项在选项后面的选项后未返回
Using the Argo Command line parser: Unknown option is not returned when option is behind a exsiting option
使用这个非常好的命令行解析器 Argo(Header 仅 C++ 库)我遇到了一个小问题。
参见:https://github.com/phforest/Argo
Argo returns : 'Error: Unknown option' 当找不到选项时,但当参数在已知参数后面时找不到。
编译以下代码:(inc 是 argo 的位置 header)
c++ test.cpp -I inc --std=c++11
#include <iostream>
int main(int argc, char **argv)
{
argo::Configuration pcnfg;
std::vector<std::string> input_texts;
pcnfg.program.name = { "wow", "EyeOnText WoWoolConsole" };
pcnfg.program.version = { 1, 1, 1 };
argo::Arguments args(pcnfg);
args.add(argo::handler::Option("input-text", "i", input_texts).help("Input text to process."));
const auto result = args.parse(argc, argv);
switch (result.status)
{
case argo::ReturnCode::Error: std::cerr << "Error: " << result.message << std::endl; return 1;
case argo::ReturnCode::SuccessAndAbort: return 0;
default: break;
}
for ( auto const & input : input_texts )
{
std::cout << "- " << input << std::endl;
}
return 0;
}
运行:
./a.out --other -i "test"
错误:未知选项'--other'
哪个可以
运行:
./a.out -i "test" --other
- 测试
- --其他
--other不应该在输入列表中。
(免责声明:我是库的开发者)
我认为这在较新的版本中已得到解决。至少,使用提供的代码,我得到了预期的输出(两次 'Unknown option' 错误)。如果问题没有解决,我们可以使用 https://gitlab.com/dgrine/Argo/issues
的错误跟踪器来处理它
使用这个非常好的命令行解析器 Argo(Header 仅 C++ 库)我遇到了一个小问题。 参见:https://github.com/phforest/Argo
Argo returns : 'Error: Unknown option' 当找不到选项时,但当参数在已知参数后面时找不到。
编译以下代码:(inc 是 argo 的位置 header) c++ test.cpp -I inc --std=c++11
#include <iostream>
int main(int argc, char **argv)
{
argo::Configuration pcnfg;
std::vector<std::string> input_texts;
pcnfg.program.name = { "wow", "EyeOnText WoWoolConsole" };
pcnfg.program.version = { 1, 1, 1 };
argo::Arguments args(pcnfg);
args.add(argo::handler::Option("input-text", "i", input_texts).help("Input text to process."));
const auto result = args.parse(argc, argv);
switch (result.status)
{
case argo::ReturnCode::Error: std::cerr << "Error: " << result.message << std::endl; return 1;
case argo::ReturnCode::SuccessAndAbort: return 0;
default: break;
}
for ( auto const & input : input_texts )
{
std::cout << "- " << input << std::endl;
}
return 0;
}
运行: ./a.out --other -i "test" 错误:未知选项'--other' 哪个可以
运行: ./a.out -i "test" --other - 测试 - --其他
--other不应该在输入列表中。
(免责声明:我是库的开发者)
我认为这在较新的版本中已得到解决。至少,使用提供的代码,我得到了预期的输出(两次 'Unknown option' 错误)。如果问题没有解决,我们可以使用 https://gitlab.com/dgrine/Argo/issues
的错误跟踪器来处理它