diff --git a/include/CLI/App.hpp b/include/CLI/App.hpp index 622b3f26..109923f1 100644 --- a/include/CLI/App.hpp +++ b/include/CLI/App.hpp @@ -484,21 +484,13 @@ public: } /// Check to see if a subcommand is part of this command (text version) - App* get_subcommand(std::string subcom) { - for(const App_p &subcomptr : subcommands_) - if(subcomptr->check_name(subcom)) - return subcomptr.get(); - throw CLI::OptionNotFound(subcom); - } - - /// Check to see if a subcommand is part of this command (text version, const) App* get_subcommand(std::string subcom) const { for(const App_p &subcomptr : subcommands_) if(subcomptr->check_name(subcom)) return subcomptr.get(); throw CLI::OptionNotFound(subcom); } - + ///@} /// @name Extras for subclassing ///@{ diff --git a/tests/SubcommandTest.cpp b/tests/SubcommandTest.cpp index 3e77e8c8..f53721eb 100644 --- a/tests/SubcommandTest.cpp +++ b/tests/SubcommandTest.cpp @@ -4,6 +4,10 @@ TEST_F(TApp, BasicSubcommands) { auto sub1 = app.add_subcommand("sub1"); auto sub2 = app.add_subcommand("sub2"); + EXPECT_EQ(sub1, app.get_subcommand(sub1)); + EXPECT_EQ(sub1, app.get_subcommand("sub1")); + EXPECT_THROW(app.get_subcommand("sub3"), CLI::OptionNotFound); + run(); EXPECT_EQ((size_t) 0, app.get_subcommands().size());