D中的别名对象方法

Koz*_*oss 4 alias d

假设我已导入std.algorithm.BinaryHeap,并且想要调用其removeAny方法(例如delete_min).如果我从std.algorithm自己导入方法,我可以写这样的东西:

import std.algorithm: removeAny;
alias delete_min = removeAny;
Run Code Online (Sandbox Code Playgroud)

但是,我显然不能这样做,因为removeAny是一种方法BinaryHeap.我怎么能把它别名别的呢?

Ada*_*ppe 6

我认为最好的,如果不是唯一的方法是定义一个简短的扩展方法:

auto delete_min(T...)(ref BinaryHeap _this, T other_args_here) {
    return _this.removeAny(other_args_here);
}
Run Code Online (Sandbox Code Playgroud)

然后你可以调用它,yourthing.delete_min(other_args)编译器应该内联它删除另一个小层.