You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I think that's a bug. Consider this small program:
#include <iostream>
#include <filesystem>
#include <fstream> /* ifstream */
#include <string>
#include <cstdint> /* uint16_t */
#include <argparse/argparse.hpp>
int main(int argc, char* argv[]) {
// Parse parameters with subcommands
argparse::ArgumentParser program("dbclient");
// !! remove the below argument then it works..
program.add_argument("config_file_path")
.default_value<std::filesystem::path>(DEFAULT_CONFIG_PATH)
.required(); // Make positional arguments mandatory
argparse::ArgumentParser push_command("push"); // Create the program object
push_command.add_description("Uploads data specified in the given config file to the database.");
push_command.add_argument("config_file_path")
.default_value<std::filesystem::path>(DEFAULT_CONFIG_PATH)
.required(); // Make positional arguments mandatory
argparse::ArgumentParser pull_command("pull"); // Create the program object
pull_command.add_description("Downloads data given by the database to the specified output directory.");
pull_command.add_argument("config_file_path")
.default_value<std::filesystem::path>(DEFAULT_CONFIG_PATH)
.required(); // Make positional arguments mandatory
program.add_subparser(push_command);
program.add_subparser(pull_command);
program.parse_args(argc, argv); // Parse the arguments
if (program.is_subcommand_used(push_command)) {
std::cout << "Push command used" << std::endl;
} else if (program.is_subcommand_used(pull_command)) {
std::cout << "Pull command used" << std::endl;
} else {
std::cout << "No command used apparently" << std::endl;
}
}
If i start this with main push it will output "No command used apparently". I would have expected it to print "Push command used". It works if I remove the add_argument to the program, it will correctly print "Push command used".
The text was updated successfully, but these errors were encountered:
I think that's a bug. Consider this small program:
If i start this with
main push
it will output"No command used apparently"
. I would have expected it to print"Push command used"
. It works if I remove theadd_argument
to theprogram
, it will correctly print "Push command used"
.The text was updated successfully, but these errors were encountered: