
14 Jan
2006
14 Jan
'06
7:38 a.m.
I'm in the process of converting a large pile of legacy code which uses raw pointers to instead use boost::shared_ptr exclusively. I've got almost all of it converted and working, with one exception. Normally, given a type of Foo I define a smart pointer FooPtr, for example: class Foo; typedef boost::shared_ptr<Foo> FooPtr; But some code uses a templated type, for example: template<typename T> class Foo; Ideally, I'd use a templated typedef, for example: template<typename T> typedef boost::shared_ptr<Foo<T> > FooTPtr; but that is currently illegal in C++. Has anyone found a clean workaround? For now, I'll just do without a typedef in this case :)