以前のバージョンのSwiftでは、整列したメモリを割り当てて特定の操作を最適化するためにposix_memalign
関数を使用できました。 Swift 3ベータ版(Xcode 8ベータ2)にアップグレードして以来、失敗していて、なぜその理由がわかりません。それは単にベータ版の問題かもしれません。あるいは、単に私がその関数とどのようにインターフェースしているかを変更するだけで済むかもしれません。Swift 3で整列されたメモリ
問題を調査するために使用していたサンプルコードを以下に示します。 (これは16Kが整列される浮動小数点数のバッファを割り当てようとする。)
var pointer: UnsafeMutablePointer<Void>? = nil
let alignment: Int = 0x4
let length: Int = bufferSize
let ret = posix_memalign(&pointer, alignment, length * sizeof(Float))
if ret != noErr {
let err = String(validatingUTF8: strerror(ret)) ?? "unknown error"
fatalError("Unable to allocate aligned memory: \(err).")
}
posix_memalign
がで失敗「無効な引数」。メッセージ。
アイデア?