У меня создалось впечатление, что «Файл интерфейса AD содержит только то, что нужно импорту модуля, а не всю реализацию этого модуля». Для меня это переводится в подписи - просто возвращайте типы, имена и аргументы, чтобы компилятор знал, что он действителен, а компоновщик мог сделать грязную работу позже.
Однако запуск файла через dmd
почти ничего не удаляет:
import std.stdio;
void SayHello(const string Name)
{
writeln("Hello, ", Name, "!");
}
dmd Interface.d -o- -H
// D import file generated from 'Interface.d'
import std.stdio;
void SayHello(const string Name)
{
writeln("Hello, ",Name,"!");
}
Вряд ли это образец оптимизации.
Что именно вырезано в интерфейсных файлах?
( заголовочные файлы добавлены, потому что это самое близкое, что я смог найти.)