我有一个班级,我正在实施的范围。我想以phobos库的方式实现这些功能,即在主类之外。非会员范围功能
void popBack(T)(ref T[] a) if (!is(Unqual!T == char) && !is(Unqual!T == wchar))
{
assert(a.length);
a = a[0 .. $ - 1];
}
这里是我的版本:
void popFront(T)(ref PersistentList!(T) a)
{
a = a.next();
}
当我尝试编译这段代码有forech,我得到:
Error 1 Error: no property 'popFront' for type 'stmd.PersistentList!(int).PersistentList' main.d
我会会员代码移动到主类,但由于我正在修改输入“ref”值,我不能使用popFront()我真的需要popFront(ref a)。
我在做什么错?
感谢您的评论。我的类是不可变的,所以我实际上在类中本身不能有一个popFront成员。但我确实创建了一个“PersistentListRange”子类,所以我可以做foreach(i; lst.range),并且工作得很好。 – 2010-10-06 12:58:05