T bar(std::function<T()> f) {
                  
                  
                          return f();
                  
                  
                      }
                  
                  
                  };
                  
                  
                  И такой код:
                  
                  
                  Foo foo;
                  
                  
                  
                  
                  
                      // Работает
                  
                  
                      std::function<bool()> f = []() { return true; };
                  
                  
                      foo.bar(f);
                  
                  
                  
                  
                  
                      // Не компилируется
                  
                  
                      foo.bar([]() { return true; });
                  
                  
                  Объясните плз, почему лямбду в данном случае не принимает и как правильно написать?
                  
                  
                
А ошибка какая
У каждой лямбды уникальный тип, оберни ее в std::function и тогда передавай.
А, ты уже так сделал
Обсуждают сегодня