我想使用vector包来存储StablePtr a的未装箱数组
如何使用以下(或其变体):
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)为StablePtr a声明Unbox实例
发布于 2012-04-02 03:23:39
实际上,没有必要尝试为StablePtr定义一个Unbox实例。因为StablePtr是Storable的实例,所以你可以直接使用Data.Vector.Storable。
https://stackoverflow.com/questions/9965716
复制相似问题