3

ライブラリは、不透明なデータ型を定義します。

struct OpaqueStruct;

また、クライアント コードは を取得して解放する必要がありOpaqueStruct*ます。ライブラリ ソースにアクセスできます。

残念ながら、そのポインターを保存することshared_ptrunique_ptrできず、 エラーが発生します: 'sizeof' から incomplete type への無効なアプリケーションです

私が考えることができる最善の方法は、この投稿からfinally ガード を借りることです。

不透明な構造体ポインタに RAII を使用するにはどうすればよいですか?

4

2 に答える 2

3
std::unique_ptr<OpaqueStruct, void(*)(OpaqueStruct*)>
               ops(newOpaqueStruct(), deleteOpaqueStruct)
于 2015-12-10T12:42:23.277 に答える