本文整理汇总了C++中Argument::select方法的典型用法代码示例。如果您正苦于以下问题:C++ Argument::select方法的具体用法?C++ Argument::select怎么用?C++ Argument::select使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Argument
的用法示例。
在下文中一共展示了Argument::select方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: fetchArguments
void UsageImp::fetchArguments(UsageLine &ul, int a, int b, int &argc,
char *argv[]) {
assert(0 <= a && a <= b && b < ul.getCount());
int i;
for (i = a; i <= b; i++) {
if (ul[i] == &bra || ul[i]->isMultiArgument()) break;
if (ul[i]->isArgument()) {
Argument *argument = dynamic_cast<Argument *>(ul[i]);
assert(argument);
argument->fetch(1, argc, argv);
argument->select();
}
}
if (i > b) {
} else if (ul[i] == &bra) {
int n = 0;
int j;
for (j = b; j > i && ul[j] != &ket; j--)
if (ul[j]->isArgument()) n++;
assert(j > i + 1);
if (argc - 1 > n) fetchArguments(ul, i + 1, j - 1, argc, argv);
if (j + 1 <= b) fetchArguments(ul, j + 1, b, argc, argv);
} else if (ul[i]->isMultiArgument()) {
MultiArgument *argument = dynamic_cast<MultiArgument *>(ul[i]);
assert(argument);
int n = 0;
for (int j = i + 1; j <= b; j++)
if (ul[j]->isArgument()) n++;
int oldArgc = argc;
argc -= n;
argument->fetch(1, argc, argv);
argument->select();
argc += n;
if (n > 0) {
if (argc < oldArgc)
for (int j = n; j > 0; j--) argv[argc - j] = argv[oldArgc - j];
fetchArguments(ul, i + 1, b, argc, argv);
}
}
}