D中的别名对象方法

时间:2014-03-27 23:14:22

标签: alias d

假设我已导入std.algorithm.BinaryHeap,并希望将其removeAny方法称为其他内容(例如,delete_min)。如果我从std.algorithm本身导入方法,我可以这样写:

import std.algorithm: removeAny;
alias delete_min = removeAny;

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

1 个答案:

答案 0 :(得分:6)

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

auto delete_min(T...)(ref BinaryHeap _this, T other_args_here) {
    return _this.removeAny(other_args_here);
}

然后你可以将其称为yourthing.delete_min(other_args),编译器应该内联它删除另一个小层。