題すら思いつかないので徒然と

http://www.kmonos.net/wlog/55.php#_1446051108
どちらかといえば、その辺の2以上の要素を持つ構造体を、後付けで、この要素がfirst、この要素がsecond、と指名して、pairとしても使えるようにする機能、のほうが欲しいのです。概念としてはHaskellのclass-instanceが比較的近い。
何が嬉しいかといいますと、名前の問題は勿論、侵入型リンクリストの総称コンテナが楽に書けそうなところとか。
STLでもAda.Containersでもなんでもいいですが、この手のコンテナライブラリの気に食わないところは、コンテナが支配的になってしまうところ。そうじゃなくて、このオブジェクトはリストAにも参加しててリストBからはちょっと抜けててリストCには出たり入ったり、というのをやりたいのです。
他にはある時はこの要素がキーでまたある時はこの要素がキー…とか。関数オブジェクトだのクロージャだの使わなくても、ねえ?
↓こんなの。*1

generic type Existing = record First, Second : private; end;
package Pairs is subtype Pair is Existing; end Pairs;
type T = record A, B, C : Integer; end;
package P is new Pairs (Existing_Type => T'(First => A, Second => B));
-- Tの別名としてP.Pairが作られる。
-- X : T があったとして X.B と P.Pair (X).Second は同じ。
-- X.C はあまりでP.Pairとして見ている時はアクセス手段無し。

というかAda.Containers以下のコンテナは気合い入り過ぎですどれもこれもちょっと使っただけで実行ファイルひたすら太っていきますOrdered_Set, Ordered_Mapなんて赤黒木が実装されてますバランス木は挿入削除で木構造を作り替えるので列挙中は追加ができなくなってます何もしない普通の二分木のほうが嬉しかったかもですというか両方欲しいないや一番欲しいのはldにスマートリンク機能或いはgnatelimまともに使えるようにならないでしょうかついでにauto_ptr相当品ください。「なんでこれがあるのにこれがないんだ」とよく思うのがAdaの標準ライブラリの最大の特徴の気がする…。
…あ、もしかしてDのtemplateのalias引数がそのものずばりではなかろうか?(--;

追記
↑リンクリストを書いてる途中でしたのでこんなわけわからん話に…。
ところでIntToStrとStrToIntが区別できないのはとか考えて、でもlexical_castもあることだし返値型でも推論されるなら"To"だけでいいよなとか思い直して、でも変換が一意に定まるようなのはそもそも変換関数要らないわけでIntToStrの他にIntToHexとか欲しいからわざわざ名前付きで関数になってるわけで、そうか私はlexical_castとか既定義ルート型のtoStringの類が嫌いだったなあ、と改めて思い出して、ああやっぱりわけわからん。
やはりこういう脳内メモはチラシの裏…は新聞取って無いため使えるほどに手持ちのチラシの量が無いので、スクラップブックソフトの類いにでも溜め込んで、人様に晒さないのがいいのかも知れず。でもそもそも使い分けなんて器用な真似が脳内キャッシュが少ない私にできるとも思えず。
あれだ、特定パラグラフだけプライベートモード。

テスト2

…ふむ、commentタグはIEですら見えてしまいますが、<!-- -->形式のコメントはここでもIE, Firefox共に有効な様子。Firefoxでなんか実体参照化されてるのが気にかかりますが。

*1:念のため断っておきますが実際にはFormal Parameterの種類にrecordというのは無いです