C++相談室 part166 (769レス)
前次1-
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん

734: (ワッチョイ 1f01-/Hnv) 11/13(木)23:01 ID:/tchf03X0(1/4) AAS
unique_ptrと同様のもの(unique_ref)を作ればいいんじゃねえのって話だろ
ただしptrはnullptrで無効を表現してるから
代わりにフラグを用意する
class unique_ref{
T& ref;//参照
bool isValid;//無効判定
//コンストラクタ
unique_ref(T&r):ref(r), isValid(true){}
//ムーブ コンストラクタ
unique_ref(unique_ref&& a){move(a);}
//ムーブ代入
 unique_ref& operator=(unique_ref&& a){move(a);}
move(unique_ref&&a){if(this!=&a && a.isValid) ref=a.ref; a.isValid=false;}
}
てなかんじかと
知らんけど
737: (ワッチョイ 1f01-/Hnv) 11/13(木)23:07 ID:/tchf03X0(2/4) AAS
もしくはunique_ptrをunique_refでラップしてしまうのが楽か
738
(1): (ワッチョイ 1f01-/Hnv) 11/13(木)23:10 ID:/tchf03X0(3/4) AAS
>>736
たまにある
外部リソース(たとえばファイルハンドル)を一時的にクラスに保持して使いやすくするとか
なんにせよ寿命を明示的に管理しておかないと後でやばいことになる
741
(1): (ワッチョイ 1f01-/Hnv) 11/13(木)23:22 ID:/tchf03X0(4/4) AAS
>>739
クラス内部でちゃんと管理するのがいいんだけど時には関数内クラスを定義してちょっとしたことを行うこともある(かも)
その時には所有権を一時的にでも委譲しなきゃならなくなる
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ

ぬこの手 ぬこTOP 0.818s*