我已经声明了一个递归类型:
type treeNode
private
class(treeNode), pointer :: left => null()
class(treeNode), pointer :: right => null()
contains
procedure, non_overridable :: IsNull ! Returns true if link is null
end type treeNode
我现在希望实现“IsNull”功能。
! ----
pure function IsNull( theNode )
logical(LGT) :: IsNull
class(treeNode), pointer, intent(IN) :: theNode
IsNull = .not. associated( theNode )
end function IsNull
Gfortran 抱怨指针属性:“错误:'isnull' 在 (1) 处的传递对象虚拟参数不能是指针”
如果我删除指针属性,替换为目标属性(或什么都没有),我将无法使用关联的构造。gfortran 也不会让我测试与 null() 的等价性。
问题:如何测试实际参数是否为空?