システムの一部は、共通の祖先を共有しないプロセス間で共有されるメモリを使用します。この共有メモリに C++ オブジェクトを配置します。これらのオブジェクトのメソッドは、ヘッダーのインラインか、それぞれのプロセスにリンクされるオブジェクト ライブラリのアウト オブ ラインのいずれかです。
システムの新規参入者がよく犯す間違いは、どこかに仮想メソッドを導入することです。VT (仮想テーブル) が各プロセスで同じアドレスに存在することを保証する方法がないため、これによりシステムがクラッシュすることが保証されます。
したがって、誰かが仮想メソッドを導入しようとした場合に、コンパイラにエラーを発行させる方法があるかどうか疑問に思っています。コピー セマンティクスを禁止するために、コピー コンストラクターと代入コンストラクターをプライベートにするのと似たようなものです。