テンプレート

クラスと関数にテンプレートが使えます。テンプレート引数に取れるのは型だけです。 型の名前の最後は_tでなければいけません。

&Class<foo_t>
{
  *foo_t a;               // 先頭で定義かわからない場合は*が必要
  public ..f<_t>(_t x) _t
  {
    ret x;
  }
}

&Class!char? a.f!int?(0); // !?で囲んで型を指定する