-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathParseProgramOptions.cpp
More file actions
28 lines (22 loc) · 970 Bytes
/
ParseProgramOptions.cpp
File metadata and controls
28 lines (22 loc) · 970 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
// Copyright (C) 2022, Antoine Basset
// SPDX-License-Identifier: LGPL-3.0-or-later
#include "ProgramOptions.h"
int main(int argc, const char* const argv[]) {
// Declare
Kast::ProgramOptions options("Here's a dummy option parser!");
options.positional<int>("positional", "Positional option");
options.named<int>("named,n", "Named option with short form");
options.named("optional,o", "Named option with default value", 42);
options.flag("flag,f", "Flag with short form");
// Parse
options.parse(argc, argv);
const auto positional = options.has("positional") ? options.as<int>("positional") : -1;
const auto named = options.has("named") ? options.as<int>("named") : -1;
const auto optional = options.as<int>("optional");
const auto flag = options.as<bool>("flag");
// Print
printf("positional = %d\n", positional);
printf(" named = %d\n", named);
printf(" optional = %d\n", optional);
printf(" flag = %d\n", flag);
}