typedefテンプレートもどき

typedefにテンプレートは使えないので、継承で何とかしてみる。

#include <iostream>
#include <vector>

using namespace std;

template<typename T>
class vecvec : public vector< vector<T> > {};

template <class T>
void func(vecvec<T> vv) {
  for (vecvec<T>::const_iterator i = vv.begin() ; i != vv.end() ; i++) {
    for (vector<T>::const_iterator j = (*i).begin() ; j != (*i).end(); j++) {
      cout << *j << endl;
    }
  }
}

int main() {
  vecvec<int> vv;

  vector<int> v1;
  v1.push_back(1);
  v1.push_back(2);
  v1.push_back(3);

  vector<int> v2;
  v1.push_back(11);
  v1.push_back(22);
  v1.push_back(33);

  vv.push_back(v1);
  vv.push_back(v2);

  func(vv);

  return 0;
}

なんかコンパイル時に落ちるなぁ。