class A {
public:
};

template <class T>
class B: public virtual A {
public:
  B ();
  ~B ();
};

template <class T>
B<T>::B () { }

template <class T>
B<T>::~B () { }

int main () {
  B<int> ab;

  return 0;
}
