|
|
@@ -35,8 +35,9 @@ private:
|
|
|
bool eof_;
|
|
|
|
|
|
public:
|
|
|
- cli(std::string const & prompt, std::istream &in = std::cin);
|
|
|
- cli(std::istream &in = std::cin);
|
|
|
+ explicit cli(std::string const & prompt, std::istream &in = std::cin);
|
|
|
+ explicit cli(std::istream &in = std::cin);
|
|
|
+
|
|
|
template <typename... Args>
|
|
|
cli & register_callback(std::string const & handle,
|
|
|
std::function<void(Args...)> cb);
|
|
|
@@ -55,13 +56,18 @@ public:
|
|
|
|
|
|
private:
|
|
|
bool active() const;
|
|
|
+
|
|
|
+ cli(cli const &) = delete;
|
|
|
+ cli(cli &&) = delete;
|
|
|
+ cli &operator=(cli const &) = delete;
|
|
|
+ cli &operator=(cli &&) = delete;
|
|
|
};
|
|
|
|
|
|
template <typename... Args, size_t... Is>
|
|
|
void cli_invoke(std::function<void(Args...)> cb, cli::args_t const & args,
|
|
|
std::index_sequence<Is...>) {
|
|
|
std::tuple<std::decay_t<Args>...> object;
|
|
|
- if (string_utils::cast(args, object)) {
|
|
|
+ if (string_utils::cast(object, args)) {
|
|
|
cb(std::move(std::get<Is>(object))...);
|
|
|
}
|
|
|
}
|