template <typename T>
class Foo
{
  struct Bar
  {
    T* x_;
  };
 public:
  void function(T* o);
};

template <typename T>
void Foo<T>::function(T* o)
{
  Bar* b = new Bar;
  //
  delete b;
}
int main()
{
  Foo<int> f;
  int * p;
  f.function(p);
}
