コンテナの最新版

コンテナ周辺はDraft 14まで変わり続けた様子で、それが反映されてました。それを使っている箇所の書き直しが大変です。
大きな変更は、Replace_Element等の更新系が、Cursorを使うバージョンであってもコンテナ本体を明示的にin outで渡すことを要求していること。
つまりCursorが持つコンテナへの参照はaccess constantであるとはっきり決められたわけです。それ以前の版ではコンテナのconstantな参照から得たCursorで、コンテナの更新ができてしまってましたからねえ。実装するにも'Unrestricted_Accessの類の使用が必須でしたし。
STLではiteratorとconst_iteratorが別々に用意されてましたが、Ada.Containersでは一種類のconst_iteratorに相当するCursorだけで押し切るわけですね。
どうせならCursorは位置情報と割り切って、値を得るだけの操作にもコンテナを渡すようにすれば、VectorのCursorをインデックスと一緒にしてしまえて非常にすっきりして良いと思うのですが、リストだのツリーだの参照で繋ぐ系コンテナにとってはいちいち全部の関数にコンテナ本体渡されても完全に無駄であるわけで、悩ましいところなんでしょう、きっと。