несовместимый фактический аргумент в вызове функции в коллекции 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.

Возможны следующие решения:

  1. Добавьте тест, который l_item не аннулируется до звонка any_from_separate.
  2. Изменить подпись any_from_separateпринимать разъемные типы. Но в этом случае результат тоже стал бы съемным.
  3. Добавить ограничение separate ANY к формальному универсальному параметру класса LINKED_LIST_SEP.
Другие вопросы по тегам