Избегайте копирования объектов при передаче записей в качестве параметров функции в Ada - PullRequest
0 голосов
/ 12 июня 2018

При передаче in record в функцию или процедуру в Ada, оно передается по значению.

Должен ли я затем передавать большие записи как access constant, чтобы избежать копирования (как вы сделали бы в C ++)?

Могут ли компиляторы Ada автоматически оптимизировать эту копию автоматически?

1 Ответ

0 голосов
/ 12 июня 2018

Нет!Компилятор может свободно выбирать копию или ссылку.См. Справочное руководство по языку

Нет!

Можно и так сказать.Компилятор свободен в выборе того, что он находит лучше, и, по моему опыту, компиляторы «знают», как генерировать код лучше, чем почти все разработчики программного обеспечения.

...