#pragma once // Distributed under the LGPL version 3.0 license. See accompanying // file LICENSE or https://github.com/henryiii/CLI11 for details. #include #include #include #include #include #include #include #include #include #include // CLI Library includes #include "CLI/Error.hpp" #include "CLI/TypeTools.hpp" #include "CLI/StringTools.hpp" #include "CLI/Split.hpp" #include "CLI/Option.hpp" namespace CLI { enum class Classifer {NONE, POSITIONAL_MARK, SHORT, LONG, SUBCOMMAND}; /// Creates a command line program, with very few defaults. /** To use, create a new Program() instance with argc, argv, and a help description. The templated * add_option methods make it easy to prepare options. Remember to call `.start` before starting your * program, so that the options can be evaluated and the help option doesn't accidentally run your program. */ class App { protected: std::string name; std::string prog_description; std::vector