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

373
21 июля 2017, 03:48

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

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

Answer 1

В C++14 auto при описании типа аргумента можно использовать только в лямбда-выражениях. И да, эффект такого использования auto фактически сводится к тому, что метод operator () соответствующего функционального объекта станет шаблонным методом.

Т.е.

[](auto x) { return x + 1; }

порождает лямбда-класс, выглядящий примерно как

struct Lambda123 {
  ...
  template <typename T> auto operator ()(T x) const { return x + 1; }
  ...
};
READ ALSO
(secret != guess) != заменяет оператору ==, как?

(secret != guess) != заменяет оператору ==, как?

Программа хорошо работает (secret != guess) почему знак != (не ровен) меняет свое предназначение ведь в программе по логике сгенерированое число нужно...

214
C++ Error E2293 )expected [требует правки]

C++ Error E2293 )expected [требует правки]

Какие бывают причины возникновения ошибки и как их решить? Пробавала подключить #include "vclh" проблемы не решило

186
Как в скрипте изменяющем ширину блоков по большему к результату добавить +1px

Как в скрипте изменяющем ширину блоков по большему к результату добавить +1px

Есть следующий скрипт изменяющий ширину определенных блоков на странице по большему:

285
цепочка вызовов в сокращенном виде

цепочка вызовов в сокращенном виде

доброго времени суток, есть куча кода с повторяющимися цепочками вызовов, есть ли какие нибудь способы сократить код подобным образом:slideUp()

273