Hi,
I'm trying to get my components, packages and units running under Delphi 10.3 Rio.
Currently I'm stumbling over CCR.EXIF (latest revision 1.5.1), the set of units to read and manipulate EXIF header data and such in images.
The compiler throws a E2574 in the unit CCR.Exif.IPTC.pas at this place:
unit CCR.Exif.IPTC;
interface
uses
Types, SysUtils, Classes, {$IFDEF HasGenerics}Generics.Collections, Generics.Defaults,{$ENDIF}
{$IFDEF VCL}Jpeg,{$ENDIF} CCR.Exif.BaseUtils, CCR.Exif.TagIDs, CCR.Exif.TiffUtils;
type
TIPTCStringArray = type Types.TStringDynArray; //using 'type' means the helper defined below will only apply to it
{$IFDEF XE3+}
TIPTCStringArrayHelper = record helper for TIPTCStringArray
class function CreateFromStrings(const Strings: TStrings): TIPTCStringArray; static;
function Join(const Separator: string): string;
end;
{$ENDIF}
In line 11 of this excerpt the compiler throws a E2574 ("Instantiated type can not be used for TYPE'd type declaration") about the use of "type" for this declaration of TIPTCStringArray, which shall extent TStringDynArray with a recordhelper.
This error doesn't occur with any compiler prior to Rio.
When I leave out the "type" it compiles fine.
I'm not an expert on generics and such, so I'm not sure what consequences it has to just leave out the "type" (in contrary to the authors intent according to the comment).
Has anyone a better idea what to do here?