Зачем создавать язык с уникальными анонимными типами?C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Зачем создавать язык с уникальными анонимными типами?

Сообщение Anonymous »

Меня всегда беспокоила особенность лямбда-выражений C++: тип лямбда-выражения C++ уникален и анонимен, я просто не могу его записать. Даже если я создам две лямбды, которые синтаксически совершенно одинаковы, результирующие типы будут определены как разные. Следствием этого является то, что а) лямбды могут передаваться только в шаблонные функции, которые позволяют передавать время компиляции, невыразимый тип вместе с объектом, и б) лямбды полезны только после того, как их тип стерт с помощью std::function.
Хорошо, но именно так это и происходит в C++, я был готов списать это на просто утомительную особенность этого языка. Однако я только что узнал, что Rust, похоже, делает то же самое: каждая функция или лямбда Rust имеет уникальный анонимный тип. И теперь мне интересно: почему?
Итак, мой вопрос заключается в следующем:

Какова польза, с точки зрения языкового дизайнера, от введения в язык концепции уникального анонимного типа?

Подробнее здесь: https://stackoverflow.com/questions/631 ... mous-types
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»