File: is_used.cpp

package info (click to toggle)
libargparse 3.2-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 896 kB
  • sloc: cpp: 11,319; python: 8; makefile: 4; sh: 3
file content (28 lines) | stat: -rw-r--r-- 920 bytes parent folder | download | duplicates (5)
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
28
// SPDX-License-Identifier: MIT

#include <argparse/argparse.hpp>

int main(int argc, char *argv[]) {
  argparse::ArgumentParser program("test");

  program.add_argument("--color")
      .default_value(std::string{
          "orange"}) // might otherwise be type const char* leading to an error
                     // when trying program.get<std::string>
      .help("specify the cat's fur color");

  try {
    program.parse_args(argc, argv); // Example: ./main --color orange
  } catch (const std::exception &err) {
    std::cerr << err.what() << std::endl;
    std::cerr << program;
    return 1;
  }

  auto color = program.get<std::string>("--color"); // "orange"
  auto explicit_color =
      program.is_used("--color"); // true, user provided orange
  std::cout << "Color: " << color << "\n";
  std::cout << "Argument was explicitly provided by user? " << std::boolalpha
            << explicit_color << "\n";
}