Это ошибка D?(не может получить доступ к закрытому аргументу шаблона) - PullRequest
0 голосов
/ 31 декабря 2018

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.

Это ошибка компилятора?(В моем понимании символ псевдонима, передаваемый шаблону, должен быть доступен шаблону, поскольку он явно передается шаблону, даже если он является личным.)

...