История изменений
Исправление fsb4000, (текущая версия) :
Неправильно ты ответил. Лямбда это всегда function object.(Функтор это https://en.wikipedia.org/wiki/Functor и в стандарте С++ никогда не употреблялся термин функтор, и даже в какой-то конференции представители комитета говорили, что это какие-то дауничи стали так говорить, и давайте соблюдать мировую терминологию и не выдумывать свою…). В твоём случае происходит неявное преобразование. А неявные преобразования зло.
Просто когда нет захвата, он реализует метод как статический метод класса, который потом можно преобразовать к обычному указателю на функцию.
https://gcc.godbolt.org/z/ev8hrE
С помощью оператора +
можно затребовать явное преобразование, и будет ошибка компиляции, если есть захваченные переменные и этого невозможно сделать…
Исправление fsb4000, :
Неправильно ты ответил. Лямбда это всегда function object.(Функтор это https://ru.wikipedia.org/wiki/%D0%A4%D1%83%D0%BD%D0%BA%D1%82%D0%BE%D1%80_(%D0%BC%D0%B0%D1%82%D0%B5%D0%BC%D0%B0%D1%82%D0%B8%D0%BA%D0%B0 и в стандарте С++ никогда не употреблялся термин функтор, и даже в какой-то конференции представители комитета говорили, что это какие-то дауничи стали так говорить, и давайте соблюдать мировую терминологию и не выдумывать свою…). В твоём случае происходит неявное преобразование. А неявные преобразования зло.
Просто когда нет захвата, он реализует метод как статический метод класса, который потом можно преобразовать к обычному указателю на функцию.
https://gcc.godbolt.org/z/ev8hrE
С помощью оператора +
можно затребовать явное преобразование, и будет ошибка компиляции, если есть захваченные переменные и этого невозможно сделать…
Исправление fsb4000, :
Неправильно ты ответил. Лямбда это всегда функтор. В твоём случае происходит неявное преобразование. А неявные преобразования зло.
Просто когда нет захвата, он реализует метод как статический метод класса, который потом можно преобразовать к обычному указателю на функцию.
https://gcc.godbolt.org/z/ev8hrE
С помощью оператора +
можно затребовать явное преобразование, и будет ошибка компиляции, если есть захваченные переменные и этого невозможно сделать…
Исправление fsb4000, :
Неправильно ты ответил. Лямбда это всегда функтор. В твоём случае происходит неявное преобразование. А неявные преобразования зло.
Просто когда нет захвата, он реализует метод как статический метод класса, который потом можно преобразовать к обычному указателю на функцию.
https://gcc.godbolt.org/z/d1fKsf
С помощью оператора +
можно затребовать явное преобразование, и будет ошибка компиляции, если есть захваченные переменные и этого невозможно сделать…
Исходная версия fsb4000, :
Неправильно ты ответил. Лямбда это всегда функтор. В твоём случае происходит неявное преобразование. А неявные преобразования зло.
Просто когда нет захвата, он реализует метод как статический метод класса, который потом можно преобразовать к обычному указателю на функцию.