/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying file Copyright.txt or https://cmake.org/licensing for details. */ #ifndef cmSubcommandTable_h #define cmSubcommandTable_h #include "cmConfigure.h" // IWYU pragma: keep #include "cm_static_string_view.hxx" #include "cm_string_view.hxx" #include #include #include #include class cmExecutionStatus; class cmSubcommandTable { public: using Command = bool (*)(std::vector const&, cmExecutionStatus&); using Elem = std::pair; using InitElem = std::pair; cmSubcommandTable(std::initializer_list init); bool operator()(cm::string_view key, std::vector const& args, cmExecutionStatus& status) const; private: std::vector Impl; }; #endif