Note to self: In Lazarus Win64 there is no floating point type Extended, it’s mapped to Double. So, overloading something like:
function TryStr2Float(const _s: string; out _flt: Extended; _DecSeparator: Char = '.'): Boolean; overload; function TryStr2Float(const _s: string; out _flt: Double; _DecSeparator: Char = '.'): Boolean; overload; function TryStr2Float(const _s: string; out _flt: Single; _DecSeparator: Char = '.'): Boolean; overload;
will not compile.
Workaround: Add an {$IFNDEF Win64} around it:
{$IFNDEF Win64} function TryStr2Float(const _s: string; out _flt: Extended; _DecSeparator: Char = '.'): Boolean; overload; {$ENDIF} function TryStr2Float(const _s: string; out _flt: Double; _DecSeparator: Char = '.'): Boolean; overload; function TryStr2Float(const _s: string; out _flt: Single; _DecSeparator: Char = '.'): Boolean; overload;
This probably also applies to Delphi when compiling for others than the Win32 target, e.g. Win64, Android, IOS etc.