LINUX.ORG.RU

История изменений

Исправление 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, :

Неправильно ты ответил. Лямбда это всегда функтор. В твоём случае происходит неявное преобразование. А неявные преобразования зло.

Просто когда нет захвата, он реализует метод как статический метод класса, который потом можно преобразовать к обычному указателю на функцию.

https://gcc.godbolt.org/z/d1fKsf