История изменений
Исправление alysnix, (текущая версия) :
«замыкание» это по жизни обычная функция со автоматически сгенеренным внутренним именем и скрытыми переменными куда подсовываются «захваченные» переменные при ее вызове, если они указаны.
то есть если в плюсах написать
void ff(){
int x=0;
auto my_closure = [x]()->int {
return x;
}
int y = my_closure();
}
это равносильно такой записи…
int hidden_func_kinda_closure (int fx){ return fx;}
void ff(){
int x=0;
int y = hidden_func_kinda_closure(x);
}
то есть замыкания - в чистом виде синтаксический сахар, позволяющий не писать в явном виде внешнюю функцию. а писать ее локально и даже внутри выражений.
то есть в асмовом выхлопе вы даже не отличите первый вариант от второго.
Исправление alysnix, :
«замыкание» это по жизни обычная функция со автоматически сгенеренным внутренним именем и скрытыми переменными куда подсовываются «захваченные» переменные при ее вызове, если они указаны.
то есть если в плюсах написать
void ff(){
int x=0;
auto my_closure = [x]()->int {
return x;
}
int y = my_closure();
}
это равносильно такой записи…
int hidden_func_kinda_closure (int fx){ return fx;}
void ff(){
int x=0;
int y = hidden_func(x);
}
то есть замыкания - в чистом виде синтаксический сахар, позволяющий не писать в явном виде внешнюю функцию. а писать ее локально и даже внутри выражений.
то есть в асмовом выхлопе вы даже не отличите первый вариант от второго.
Исходная версия alysnix, :
«замыкание» это по жизни обычная функция со автоматически сгенеренным внутренним именем и скрытыми переменными куда подсовываются «захваченные» переменные при ее вызове, если они указаны.
то есть если в плюсах написать
void ff(){
int x;
auto my_closure = [x]()->int {
return x;
}
int y = my_closure();
}
это равносильно такой записи…
int hidden_func_kinda_closure (int fx){ return fx;}
void ff(){
int x;
int y = hidden_func(x);
}
то есть замыкания - в чистом виде синтаксический сахар, позволяющий не писать в явном виде внешнюю функцию. а писать ее локально и даже внутри выражений.
то есть в асмовом выхлопе вы даже не отличите первый вариант от второго.