1
Ich möchte das vector
Paket verwenden unboxed Arrays von StablePtr a
Wie stelle ich eine Data.Vector.Unbox-Instanz für StablePtrs in Haskell bereit?
speichern Wie kann ich die folgenden (oder Varianten davon) verwenden:
ptr2Int :: Ptr a -> Int
ptr2Int (Ptr a) = I# (addr2Int# a)
stablePtrToInt :: StablePtr a -> Int
stablePtrToInt = ptr2Int . castStablePtrToPtr
intToStablePtr :: Int -> StablePtr a
intToStablePtr (I# i) = castPtrToStablePtr $ Ptr (int2Addr# i)
eine Unbox
Instanz für StablePtr a
zu erklären?
Sind Sie sicher, dass Sie Data.Vector.Storable nicht verwenden möchten ?, StablePtrs sind Instanzen von Storable. – dnaq
oh danke für den Hinweis :) Ich denke, es wird tun. –
@danvari würde es dir etwas ausmachen, deine Antwort als Antwort zu schreiben, damit ich sie annehmen kann. Übrigens gehe ich davon aus, dass die Speicherauslastung die gleiche wie bei ungepanzten Vektoren ist. –