On Thu, Sep 8, 2016 at 6:27 PM, David Emerson <dle...@angelbase.com> wrote:
> On 09/08/2016 10:08 AM, silvioprog wrote: > >> Hello, >> >> Looking an alternative to solve the problem I've talked at this topic >> <http://lists.freepascal.org/pipermail/fpc-pascal/2016-August/048635.html >> >, >> I've tried to solve it declaring a macro named "TIStringComparer.Ordinal": >> > > Macros can only replace identifiers, the dot breaks it. > > I would make something like, > > _TIStringComparer_dot_Ordinal > > and then you can use the definition you proposed. > > I'm in the habit of naming macros with a leading underscore, as I don't > name anything else that way and it makes it easy to identify them. Thanks for sharing this info regarding macros. :-) I've declared a macro trying to keep the Delphi syntax, so unfortunately I can't declare it as _TIStringComparer_dot_Ordinal instead of TIStringComparer.Ordinal, hence I've temporally declared it as: class constructor TFoo.Bar; begin ... GVariables := TDictionary<string, string>.Create( {$IFDEF FPC} // see http://lists.freepascal.org/pipermail/fpc-pascal/2016- August/048635.html TEqualityComparer<string>.Construct(EqualityComparison, ExtendedHasher) {$ELSE} TIStringComparer.Ordinal {$ENDIF}); end; but I will remove the implementation above as soon as rtl-generics allow to use TIStringComparer.Ordinal without workarounds. -- Silvio Clécio
_______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal