diff --git a/rtl/objpas/sysutils/sysutilh.inc b/rtl/objpas/sysutils/sysutilh.inc index 5a27691e0a..205898a874 100644 --- a/rtl/objpas/sysutils/sysutilh.inc +++ b/rtl/objpas/sysutils/sysutilh.inc @@ -287,6 +287,7 @@ type {$IFNDEF VER3_0} generic function IfThen(val:boolean;const iftrue:T; const iffalse:T) :T; inline; overload; +generic function Exchange(var target:T; const newvalue:T) :T; inline; {$ENDIF} Var diff --git a/rtl/objpas/sysutils/sysutils.inc b/rtl/objpas/sysutils/sysutils.inc index ccdd6b05c0..fc40a15e28 100644 --- a/rtl/objpas/sysutils/sysutils.inc +++ b/rtl/objpas/sysutils/sysutils.inc @@ -872,6 +872,12 @@ begin else Result:=ifFalse; end; + +generic function Exchange(var target:T; const newvalue:T) :T; +begin + Result := target; + target := newvalue; +end; {$ENDIF} Function ArrayOfConstToStrArray(Args: array of const) : TUTF8StringDynArray;