The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Утверждён стандарт C++20"
Отправлено Ordu, 08-Сен-20 21:45 
> В лиспе тоже просто: (lambda (arg) body).
> Ну и нахрена такие сложности в плюсах?

Захват переменных замыканием. В лиспе если у тебя есть объект, то лиспу пофигу, сколько разного кода на него ссылается. И сборщику мусора пофигу. В C/C++ же не пофигу, легко можно придти к ситуации неопределённости, когда нет возможности вне времени выполнения сказать, когда надо освобождать память. (Во-время выполнения тоже нельзя, но это лишь в дефолтном инструментарии: valgrind, например может, или сборщик мусора можно прикрутить, и он тоже найдёт память, которую следовало бы освободить).

А чтобы дать программисту возможность неопределённости избегать, запилен заморочный синтаксис лямбд, который позволяет программисту рулить тем, как переменные попадают в лямбду: копируются значения? закидываются ссылки? Заметь, что если закидываются ссылки, то программист сам должен следить за тем, чтобы не удалить объекты, на которые они ссылаются, до того, как будет удалена лямбда, иначе код лямбды обратится к освобождённой памяти. Если же копируются значения, то куда они копируются? На стек не скопируешь, потому как лямбду можно вернуть из функции и стековый фрейм может прекратить существовать. Значит копируем в кучу, а значит выделение памяти, значит с лямбдой увязан кусок памяти, который надо освободить, освобождая лямбду.

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру