2011-02-05

unique_ptrの実装は意外と面倒だ

朝早く目が覚めてしまったので、朝飯前に何かコーディングすることにした。何をコーディングするか。できればメタプログラミングがしたい。そうだ、unique_ptrはどうだろう。たしか、unique_ptrのnested typeであるpointerは、メタプログラミングが必須だったはずだ。

というわけで、さっそく、unique_ptrの実装にとりかかった。しかし、unique_ptrの実装は、意外と面倒だった。

pointerは簡単なのだが、面倒なのは、ポインターとデリーターの両方を仮引数に取るコンストラクターだ。これは、難しいというわけではないが、相当に面倒だ。

しかし、わざわざここまでして、lvalueリファレンス型のデリーターをサポートする必要があるのだろうか。デリーターは、どう考えても初心者がたやすく使いこなせるとは思えない。

No comments: