Avatar
あーけどこれだとメモリ効率悪すぎるか。 Any に Any 込みの struct 入れたら絶対にヒープに入っちゃう。32バイト無駄すぎ。
5:17 AM
素直にBox作ったほうがいい気がしてきました。 これなら MemoryLayout<Foo>.size == 8indirect enum Box<T> { case val(T) init(_ val: T) { self = .val(val) } var val: T { switch self { case .val(let val): return val } } } struct Foo { private var _inner: Box<Foo>? var inner: Foo? { get { return _inner?.val } set { _inner = newValue.map(Box.init) } } }
👍 1