У меня есть класс, для которого я реализую диапазоны. Я хотел бы реализовать функции так, как это делает библиотека 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).
Что я делаю не так?