handled_record.d
:
module handled_record;
template CObjects(alias destructor) {
void f() {
destructor();
}
}
world.d
:
module world;
import handled_record;
private void free() { }
alias objects = CObjects!(free);
Компиляция:
$ dmd -c *.d
handled_record.d(5): Error: function world.free is not accessible from module handled_record
world.d(7): Error: template instance `handled_record.CObjects!(free)` error instantiating
Ошибка исчезнет, если я удалю ключевое слово private
.
Это ошибка компилятора?(В моем понимании символ псевдонима, передаваемый шаблону, должен быть доступен шаблону, поскольку он явно передается шаблону, даже если он является личным.)