可変長引数

可変長引数を使うには次のようにすればいいらしい

(define foo
  (lambda args
    // 関数本体
  ))

こうすると引数が全てひとつのリストになってargsに入る。こんな書き方ができるのか〜。
普段何気なく使っている

(define foo
  (lambda (arg1 arg2 arg3)
    //
  ))

の様な書き方は引数全体をリストとしてみて、それとパターンマッチしているんだな。たぶん。

名無しテンプレート引数 + friend

テンプレート引数が違うのみのクラスをfriend指定したい場合は

template <class A, class B, class C>
class foo
{
  template <class,class,class> friend class foo;
  // ....
};

と書けるみたい。テンプレートどっぷりなコードには必要不可欠だな、これ。

名無しテンプレート引数といえば

template <class A, template <class> class B>
class foo
{
  B<A> bar;
  // ....
};

みたいな書き方もある。