私はいくつかの C ライブラリのラッパーを書いています。UnsafePointer を不変の構造体にすることは可能ですか? 可変構造体の場合は問題ありません。
func Foo_get(ptr : UnsafePointer<Foo>) {
//does not mutate
}
struct Foo {
//big data
mutating func get1() { //inconvenient
Foo_get(&self)
}
func get2() { //unnecessary copy
var copy = self
Foo_get(©)
}
}
しかし、これらのソリューションはどちらも理想的ではありません。