お互いの存在を確認する.


お互いの存在を確認するクラスを作ろうと思ったんだけど,

当然の如く上手くいかないwww


結構できてるんだけど,どうしても制約ができちゃうんだよなぁ.


#include <afclib/utils/existence_panel.hpp>

using afclib::utils::existence_panel;

int main(){

  existence_panel e0(0);

  {
    existence_panel e1(1);
    e0.join(e1); // 0-1

    assert(e0.exist(1) == true);
    assert(e1.exist(0) == true);
  }

  assert(e0.exist(1) == false); // 0

// 上まで位なら簡単にできるけど

  existence_panel e2(2);
  e0.join(e2); // 0-2

  {
    existence_panel e3(3);
    existence_panel e4(4);

    e3.join(e4); // 3-4

    e0.join(e4); // 0-2-3-4

    assert(e0.exist(3) == true);

  }

  assert(e0.exist(3) == false); // 0-2
  // joinしたもの同士をjoinしようとすると
  // 数字がぶつかった時が困る

  // まぁ例外を投げるでいいか.


  existence_panel ex; // id未設定

  e0.join(ex); // 0-2-1

  int ex_id = ex.id(); // id取得 例えば 1


}


ていうか,これくらいの物ならもうすでにあるよね.


寿命を指定できるSingletonとかあったけど,それとはちょっと違うかな?



まぁこんなん使わなくても,ポインタ一つ共有してそこにマークを書き込めばいいのだろうけど,

なんかこういうのがあったほうが便利そうな気がしただけです.