У меня есть производный от Фортрана тип T, который содержит массивы данных (множества) разных рангов и типов.Эти массивы скрыты внутри сложной структуры данных, и я хотел бы иметь функцию получения, которая делает следующее:
a => T%get(data_id)
где «a» — указатель массива заданного типа, а data_id — целое число, которое используется для поиска данные внутри структуры данных. Я делаю это, перегружая многие функции "get_thistype()" под общим именем.
TYPE T
PROCEDURE :: get_real
PROCEDURE :: get_integer
GENERIC :: get => get_real,get_integer
END TYPE
Это работает, если подпрограммы get_thistype() являются подпрограммами, но не если они написаны как функции. Это означает, что мой код выглядит так:
CALL T%get(a,data_id)
, который я нахожу гораздо менее читаемым. Есть ли способ перегрузить функции, которые имеют один и тот же список аргументов, но разные типы возвращаемых значений? или для этого нужно использовать подпрограммы?