objects is the wrong term.
Thanks PascalDragon. I'm not sure to understand. In TList (belonging to RTL), items are pointers, whereas in TObjectList (in FCL) they are objects. Moreover in the TList I can't set not ownership of items, conversely in TObjectList I can. Now in FGL implementation of generics, both TFPGList and TFPGObjectList require that items are objects (i.e. descendants of TObject). As a conseguence, metatype T can't be specialized with a record. Differently, in rtl-generics implementation, specialization with a record type is supported. So, what is the impact of change you are talking about? Thanks again for kind support.No, TFPGList does not require your items to be descendants of TObject. The only requirement is that a = operator is available for the type (Note: global operators don't work, for records it needs to be part of the type).
Error: Operator is not overloaded: "TItem" = "TItem"
does it means that in FGL specialization is only possible using advanced record with equal overload, but is not available for conventional record?Yes. See https://bugs.freepascal.org/view.php?id=15480 (https://bugs.freepascal.org/view.php?id=15480)