#cpp #cpp14
Я знаю, что в стандарте C++ 14 возможно использовать ключевое слово auto при указании типа аргумента. Но мне не понятно, по каким правилам это работает? Функция будет работать как шаблонная?
Ответы
Ответ 1
В C++14 auto при описании типа аргумента можно использовать только в лямбда-выражениях. И да, эффект такого использования auto фактически сводится к тому, что метод operator () соответствующего функционального объекта станет шаблонным методом. Т.е. [](auto x) { return x + 1; } порождает лямбда-класс, выглядящий примерно как struct Lambda123 { ... templateauto operator ()(T x) const { return x + 1; } ... };
Комментариев нет:
Отправить комментарий