@noncopyable struct FileDescriptor { private var fd: Int32 init(fd: Int32) { self.fd = fd } func write(buffer: Data) { buffer.withUnsafeBytes { write(fd, $0.baseAddress!, $0.count) } } deinit { close(fd) } }
moveonly
じゃなくて @noncopyable
というアトリビュートになったらしい。 (edited)