Avatar
strlen(str) // 元のコード // 変換先のコード str.withUnsafeBufferPointer { strlen($0) }
6:03 AM
こういう、関数呼び出しそれ自体をラップする形の書き換えが必要で
6:04 AM
そのケースについては現状の言語仕様上でできるユーザー定義演算子だと無理だと思うんですよね
6:04 AM
The pointer passed as an argument to body is valid only during the execution of withUnsafeBufferPointer(_:). Do not store or return the pointer for later use.
6:05 AM
↑ここで渡されるバッファポインタは、withUnsafeBufferPointerの呼び出しの間だけ有効で、ストアしたりreturnして取り出して後から使ってはいけない
6:05 AM
って書いてあるんですよ
6:05 AM
ということは逆に言うと