Bonjour,
est-il possible d'utiliser une fonction comme élément d'un type dérivé, c'est à dire de l'invoquer directement à partir de l'objet :
?
Par exemple :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| module m
type TA
integer :: n
end type TA
contains
function f(a) result(s)
type(TA), intent(in) :: a
integer :: s
s = a%n
end function f
end module m
program appli
use m
type(TA) :: a = TA(1)
write (*, *), f(a)
end program appli |
La fonction "f" est invoquée "de l'extérieur" du type "TA".
Existe t'il une façon de construire le type dérivé permettant une invocation similaire à :
Cette syntaxe :
1 2 3 4
| type TA
integer :: n
procedure(f), pointer, pass(a) :: f
end type TA |
provoquant l'erreur de compilation :
Error: Unclassifiable statement at (1)
Quelle est la bonne syntaxe ?
Merci.
Partager