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

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

Сообщение Anonymous »

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

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

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

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