4

ICU 文字列用のラッパー クラスを作成し、move 対応コンパイラを使用しましたが、ICU には move コンストラクタがありません。また、このジョブの実行に使用できる swap() 関数も見つかりませんでした。ICU 文字列の移動セマンティクスを実装するにはどうすればよいですか?

4

1 に答える 1

4

文字列にアクセスするたびにポインターの逆参照のオーバーヘッドに問題がなければ (私はそうではありません)、いつでも icu 文字列を に格納できますstd::unique_ptr。その後、移動はポインターを移動するのと同じくらい簡単です。

MyWrapper(MyWrapper && that)
    :str_ptr(std::move(that.str_ptr))
{}

個人的には、実際に ICU のソースを変更したほうがよいと思います。

于 2012-05-31T14:41:23.937 に答える