Я только начал перегрузку операторов (включая присваивание) в Fortran 2003, и я хочу перегрузить оператор стрелки (=>) для моего определенного пользователем типа.Я знаю, что для большинства операторов, таких как (+), я бы сказал
interface operator(+)
! What I want this to mean instead
end interface operator
Но это не работает для (=>).Я знаю, что для присваивания я бы сказал
interface assignment(=)
! What I want this to mean instead
end interface assignment
, который все еще не работает для (=>).
В частности, я определяю тип, в котором базовые данные являются указателем.
type my_type
integer, pointer :: data(:)
end type my_type
Итак, когда я говорю
type (my_type) :: a
integer, target :: b(4)
! Do stuff to b
a => b
, я бы хотел, чтобы это означало
a%data => b
Спасибо за любые предложения!Также будут полезны ответы в стандартах, отличных от стандарта 2003 года.