несовместимый фактический аргумент в вызове функции в коллекции make_from_separate
Не понимаю, где я ошибаюсь...
class
LINKED_LIST_SEP[G]
inherit
LINKED_LIST [G]
create
make,
make_from_iterable,
make_from_separate
feature {NONE} -- Initialization
make_from_separate (other: separate like Current)
do
default_create
across
other is l_item
loop
check
attached {G} {SCOOP_UTIL}.any_from_separate (l_item) as l_v
then
extend (l_v)
end
end
end
end -- class
1 ответ
Решение
Для неограниченного формального универсального параметра неявное ограничение равно detachable separate ANY
. Но особенностьany_from_separate
ожидает separate ANY
.
Возможны следующие решения:
- Добавьте тест, который
l_item
не аннулируется до звонкаany_from_separate
. - Изменить подпись
any_from_separate
принимать разъемные типы. Но в этом случае результат тоже стал бы съемным. - Добавить ограничение
separate ANY
к формальному универсальному параметру классаLINKED_LIST_SEP
.