4.7がStage 3に入ったので試してみた

  • 2012対応状況
    • use all type → 「変数 := 式;」の形の式の部分でのみOK。
    • Implicit_Dereference → 関数呼び出しの返値でのみOK。
    • range-based for(違) → OK、ありえんぐらい酷いコードが出てくるけど動く。Ada.Iterator_Interfacesもちゃんとある。
    • operator () (違) → OK、Constant_Referenceが呼ばれないような気もするけど。
    • 後は4.6のときと同じ。
  • その他気になる改善点
    • protected型がちゃんとread-write lockしてくれるようになってます。
    • Controlled型がリンクリストを作らなくなってます。*1
    • Unbounded_Stringに参照カウンタの実装も追加されたみたいです。*2でもデフォルトでは無効っぽい。

*1:上では余計なデータはVMTだけみたいに書いてますが、実はgcc 4.6までは前後へのリンクも持ってました。

*2:上ではあたかもUnbounded_Stringが参照カウンタで実装されてるように書いてますが、gcc 4.6までは毎回コピーされてました。