LoginSignup
0
0

More than 5 years have passed since last update.

Effective C++ (3rd) > 29項 > strong guarantee > コピーと交換(スワップ) > pimplイディオム

Last updated at Posted at 2015-05-14

引用: Effective C++ 第3版

強い保証をするための、一般的なデザイン方法があるのです。...「コピーと交換(スワップ)」と呼ばれるもので、原理は簡単です。

まず、変更したいオブジェクトのコピーを作ります。それから、そのコピーを変更します。その処理の中で例外が投げられれば、元のオブジェクトは変更を受けないままで処理が終わることになります。
...

「コピーと交換」を実現するために、普通は、「オブジェクトのデータを別の実装オブジェクトに入れる」という方法を使います。オブジェクトは、実装オブジェクトへのポインタを保持するようにするのです。これは、しばしば、pimplイディオムとよばれるもので、31項で詳しく説明します。

pimpl(pointer to implementation)は以下の用途で使うというのは本やwebで見てきたが上記の用途にも使えるのか。

  • 実装内容をクラス使用者に公開しない
  • コンパイル時間の軽減
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0