モジュール内に抽象型を作成しようとしました
type, abstract :: AbsType
contains
procedure (Compute_AbsSize), deferred :: AbsSize
end type AbsType
abstract interface
function Compute_AbsSize(this)
import AbsType
double precision Compute_AbsSize
class(AbsType)::this
end function Compute_AbsSize
end interface
type, extends(AbsType) :: ConcrType
type(Var), dimension(4) :: Nodes ! coming from a module
contains
procedure :: AbsSize => ConcrTypeSize
end type ConcrType
contains
function ConcrTypeSize(this)
double precision ConcrTypeSize
class (ConcrType):: this !
end function ConcrTypeSize
私が書くと
function ConcrTypeSize(TheConcrType)
double precision ConcrTypeSize
class (ConcrType):: TheConcrType !
end function ConcrTypeSize
コンパイラ (gcc) は、TheConcrType が遅延関数の変数と同じ名前を持つ必要があると不平を言います。私はこの情報を見つけることができませんでした.なぜ私がこれをしなければならないのか誰か知っていますか?これは正しいですか?
編集:質問の最後の部分を この新しい質問に移動しました