Можно ли в C++ определить переменную, не указывая явно её тип (даже auto)?
Ответ
Такая возможность есть, по-крайней мере, в области захвата лямбда-функции (c++14). Отсутствие типа в данном контексте воспринимается так же как если бы переменная была объявлена с типом auto в локальном контексте. Пример:
#include
int main() {
int x = 42;
const std::string s = "now";
auto f = [&r = x, c = "text", s = s]() mutable {
r = 100500;
s[0] = 'w';
std::cout << s << "
";
};
std::cout << x << "
";
f();
std::cout << x << "
";
std::cout << s << "
";
}
Здесь r имеет тип int&, c - const char*, s (внутри тела лямбды) - std::string.
Вывод:
42
wow
100500
now
Комментариев нет:
Отправить комментарий