C++ 演算子「delete」を使用してエンクリリーブ内のオブジェクト・メモリーを解放します。
- Enclave にはクラスやクラス・オブジェクトのような C++ unique_ptrs。
- エンclave 内の C++ オブジェクトのメモリーを解放する方法が確認できません。
エンクレイブ内では、C++ delete演算子を使用して、new 演算子を使用して以前クラス、unique_ptrs、その他のオブジェクトに割り当てられたメモリーを解放します。新しい演算子と削除演算子は、通常の C++ アプリケーションと同じようにエンクレイブ内で同じように動作します。
サンプルコード:
test.h:
class{
private:
ClassA* ca;
unique_ptr cb;
}
test.cpp:
//Use new to instantiate the class and unique_ptr objects
ca = new ClassA*(...);
cb = make_unique(function(...));
//Use delete to free the memory previously allocated with new
delete ClassA;
delete cb;
詳細については、ご利用 のオペレーティング・システムの インテル® Software Guard Extensions (インテル® SGX) SDK デベロッパー・リファレンス・ガイドの C++ 言語サポートセクションを参照してください。
- インテル SGX* SDK デベロッパー・リファレンス・ガイド
- Linux インテル SGX開発リファレンス・ファイルは、最新リリースの linux*SDK の documentation フォルダーインテル® Software Guard Extensionsにあります。