配列中の1要素をgetしたりfreeするリソースマネージャの実装

OSを書いていると動的にあるデータを確保および解放したいことが良くある
例えばプロセス構造体はプロセスが生成される度に確保され、プロセス終了後に解放される
この場合、new演算子を用いればいいと思うかもしれないが、OSの中盤でnew,deleteを実装するのはしんどい
しかもデバッグ時にはnewで確保されたそれらのアドレスを見たところ何もわからない

そこで配列を作成し、その配列の要素を管理するリソースマネージャを作ることになる
このマネージャを作るメリットは以下の点にあるだろう

  • デバッグしやすい(リンク時にアドレスが固定されるから)
  • 配列に対してさまざまな管理を行うことができる(配列の要素個以上の要素の確保をエラーにできるなど)

この機能をもったクラスをテンプレートをつかって作成することで汎用的なクラスをつくる
下記にテストプログラムを載せた とにかくシンプル(’’;)

#include
using namespace std;
template class lessor{
public:
T room[N];
bool isFree[N];
lessor(){
for(int i=0;iisFree=true;
}
};
int main(void)
{
lessor man;
for(int i=0;i<11;i++)
cout<