5

私はいくつかの 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(&copy)
    }
}

しかし、これらのソリューションはどちらも理想的ではありません。

4

0 に答える 0