To: WG5 08-303 From: Michael Ingrassia Subject: Reply to request for TYPE_IS_EXTENSIBLE Date: 2008 November 20 References: 08-254r2 In public comment a request was made by multiple parties for a TYPE_IS_EXTENSIBLE intrinsic. A library designer who does not know what types the user will impose upon his interface might want improved control over user input, which may come from a source external to the program, when using unlimited polymorphic objects together with SAME_TYPE_AS() or EXTENDS_TYPE_OF(). The committee suggests that the SELECT TYPE construct may provide a useful way to supply such improved control. SELECT TYPE permits designing different cases for different extensible types, in which case the default case can supply processing for the non-extensible types. It will not be possible to distinguish between different non-extensible derived types in this way; however, that would not be possible with a TYPE_IS_EXTENSIBLE intrinsic either so the committee presumes that this is not requested functionality. The behavior of EXTENDS_TYPE_OF and SAME_TYPE_AS when applied to unlimited polymorphic entities has been clarified to allow those to be used even when the dynamic type of the arguments is not extensible.