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":
=== begin code === {$IFDEF FPC} function EqualityComparison(constref ALeft, ARight: string): Boolean; begin Result := CompareText(ALeft, ARight) = 0; end; function ExtendedHasher(constref AValue: string): UInt32; var S: string; begin S := LowerCase(AValue); Result := TDefaultHashFactory.GetHashCode(Pointer(S), Length(S) * SizeOf(Char), 0); end; // see http://lists.freepascal.org/pipermail/fpc-pascal/2016-August /048635.html {$MACRO ON} {$DEFINE TIStringComparer.Ordinal := TEqualityComparer<string>.Construct(EqualityComparison, ExtendedHasher) } {$ENDIF} === end code === The macro is just for retro-compatibility with Delphi, allowing to use this syntax: GVariables := TDictionary<string, string>.Create(TIStringComparer.Ordinal); // the macro should replace it, but ... However, it seems the macro can't replace the original "TIStringComparer.Ordinal" to my "TEqualityComparer<string>.Construct(EqualityComparison, ExtendedHasher)" definition. So, is macro indicated to solve this kind of problem? -- Silvio Clécio
_______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal