所有権 - ownership

所有権 ownership という言葉は, C++ においてほぼ最重要と言っても良いほど重要な概念だと思うけれど,この言葉を完全に前面に押し出して説明している書籍なりウェブページなりを見た記憶がほとんどない.
自分が考える C++ らしいプログラミングのためのまさに第一歩は,この所有権の概念の獲得だとまで思うんだけれど,それにしてはこの言葉が語られる機会があまりに少ない気がする.
所有する権利というのは,開放する責任と完全に表裏一体のものなので,所有権の概念の獲得は,即, RAII という発想に自然に展開される.ただ,ここで言ってる所有権はかなり漠然としたもので,ここで言ってる RAII というのも "Resource Acquisition Is Initialization" という言葉の直接的な意味よりもかなり拡大されたもの.マウスカーソルを砂時計付のカーソルに変える操作をコンストラクタに対応させ,デストラクタに通常のカーソルに戻す操作を対応させたクラスを構築するような例までをも包含する RAII.もはや RAII は "Resource Acquisition Is Initialization" の acronym という説明では十分ではないため,もう RAII は RAII でいいじゃないか,という主張は c.l.c.m でも時折見かける.
そうそう,自分が Modern C++ Design を読んで一番画期的だったのが,この所有権の概念を明確に述べて使っていたところ.っていうか Andrei Alexandrescu の仕事って,よくよく考えてみれば scope guard といい MOJO といい,所有権の概念の根幹と密接なものが多いなぁ.
まー,朝の7時に起き出して書くようなことでもないねぇ.