Gab es nicht irgendwo einen Array-Helper (paar mal gesehn, aber immer wenn ich es suche, dann finde ich nichts
),
der ein OpenArray (array of T) als Parameter entgegen nimmt und ein dynmaisches TArray<T> zurück gibt?
Bei OpenArrays kann man alle Array-Typen reingeben und der Compiler kopiert notfalls automatisch um.
Drinnen in dem Helper wäre dann aber auch wieder nur der StandardCode:
* SetLength und dann umkopieren der Items
Öff... nicht dass ich wüsste. Dürfte aber kein Hexenwerk sein...
Bezüglich
array of const
gibt es meines Wissens nach auch keine vorgefertigte Lösung, aber auch das lässt sich relativ einfach realisieren. (
function (A: array of const): TArray<TVarRec> begin Pointer(Result) := Pointer(A); end
)
Bei Strings ginge ja sowas wie
String.Join(',', MyArrayOfConst).Split(',')
, und bei anderen Typen muss man halt immer vorsichtig sein, da sie ja nicht alle Typen eines TVarRec-Objekts darstellen können. Andersherum wäre das ja, wie du sagst, eh implizit möglich.