STLコンテナのお話

久しぶりにC++のお話。C++を使うのならStandard Template Libraryは必須だろう。自作のクラスオブジェクトだって例えばvectorに格納したい、というのは自然の流れ。遠い昔に1週間の集中講座を受けた時「STLにちゃんと対応するにはコピーコンストラクタと代入演算は明示的に実装しなさいよ」と聞いたような記憶があって、ずーっとそうやってきた。勝手にコンパイラがやってくれる作業をいちいちコーディングしてきたような気がする。多分講義の時には、明示的実装が必要なケースの説明もしていたのだと思うけど、そもそも講義が英語だったりしたわけで、細かい所を聞き飛ばしていた可能性は否めない。(STLをちゃんと使おうってのが既におじさんの戯言なのかも)

コピーコンストラクタ、代入演算子なしで使えるじゃんと分かった2015年の始まりでした。list をちゃんと使おうとする場合には bool operator<( class T& t ) は必要なんだよね、きっと。(試せばいいのだけど・・・・)

一応念のため問題が発生するケースは以下にうまくまとめられていたので紹介。


コピーコンストラクタ、代入演算子、デストラクタ - たーせる日記

スマートポインターについても使えるようになりたいな

ということで、ここらへんも勉強しておきたい所。


C++11スマートポインタ入門 - Qiita