(j3.2006) About extending abstract types with deferred bindings

Cohen Malcolm malcolm
Thu Sep 8 04:15:09 EDT 2016


<<<
This comes up because a couple of our customers bemoaned the restriction in 
F08/0052, saying ?The result of the interp results in a capability gap for 
authors when they want a binding that can be overriden but not invoked?, 
and asked that such a capability be provided in a future standard.
>>>

The requirement to have all deferred type-bound procedures overridden in a 
non-ABSTRACT type does not come out of this interp.  It comes out of the 
basic requirement that it be impossible to invoke a deferred tbp.  If you 
want to instantiate something without overriding a tbp, simply don't make 
that tbp deferred - put in a stub that does an ERROR STOP.

It is literally impossible for a concrete object ever to have the 
capabilities of:
(a) a binding can be overridden
(b) that binding cannot be invoked
except in the case when the procedure has a nonoptional nonpointer 
nonallocatable dummy argument for which it is impossible to create any 
acceptable actual argument, e.g. by having it be of a nonsequence type 
private to the procedure.

<<<
Is there a prohibition against invoking an accessible deferred procedure 
binding using an abstract ancestor component of a non-abstract object?
>>>

In effect.  The rules prevent instantiating an object of abstract type in 
the first place.

<<<
Do we need
>>>

No.

Cheers,
-- 
........................Malcolm Cohen, Nihon NAG, Tokyo. 




More information about the J3 mailing list