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