以下は、g++ 4.7.1 でコンパイルに失敗するコードの要点です。
#include <iostream>
using namespace std;
template <typename T> void bottom(T x) {cout << x << " ";}
template <typename Head, typename Tail...>
void recurse(Head h, Tail t) {bottom(h); recurse(t...)}
void recurse(){}
int main() { recurse(1,2.2); }
理由は不明ですが、「void recurse(){}」はテンプレートの再帰に参加していません。
手がかりを探しています。