#include <iostream>
#include <typeinfo>
using namespace std;

template<typename A>
  struct Foo {
    template<typename B>
      Foo( B b ) {
        cout << typeid(A).name() << " " << typeid(B).name() << endl;
      }
  };

int main() {
  Foo<void*>::Foo<double>(0);
}


