Страницы

Поиск по вопросам

понедельник, 9 декабря 2019 г.

auto как аргумент функции

#cpp #cpp14


Я знаю, что в стандарте C++ 14 возможно использовать ключевое слово auto при указании
типа аргумента. 

Но мне не понятно, по каким правилам это работает? Функция будет работать как шаблонная?
    


Ответы

Ответ 1



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

Комментариев нет:

Отправить комментарий