Procházet zdrojové kódy

Fix stack overflow in `register_callback` because `lambdas::FFL` would prefer `F &&` where `F` is a `std::function` over `std::function const &`.

Sam Jaffe před 5 roky
rodič
revize
728fe6d8b9
1 změnil soubory, kde provedl 2 přidání a 2 odebrání
  1. 2 2
      include/cli/cli.h

+ 2 - 2
include/cli/cli.h

@@ -33,7 +33,7 @@ public:
   cli(std::istream &in = std::cin);
   template <typename... Args>
   cli & register_callback(std::string const & handle,
-                          std::function<void(Args...)> const & cb);
+                          std::function<void(Args...)> cb);
   template <typename F>
   cli & register_callback(std::string const & handle, F && cb) {
     return register_callback(handle, lambdas::FFL(cb));
@@ -51,7 +51,7 @@ void cli_invoke(std::function<void(Args...)> cb, cli::args_t const & args,
 
 template <typename... Args>
 cli & cli::register_callback(std::string const & handle,
-                             std::function<void(Args...)> const & cb) {
+                             std::function<void(Args...)> cb) {
   callbacks_.emplace(handle, [cb](args_t const & args) {
     if (sizeof...(Args) > args.size()) return; // TODO: Error message
     cli_invoke(cb, args, std::make_index_sequence<sizeof...(Args)>());