C ++ (пока) не имеет "typedefs шаблона", где вы можете "переименовать" шаблон, подобный этому. Эта функция добавляется в C ++ 0x, где такой «typedef» называется «шаблон псевдонима».
Самый простой способ, который работает сегодня, - это использовать шаблон класса с вложенным typedef:
template <typename T>
struct SharedPtr
{
typedef std::shared_ptr<T> Type;
};
// usage
typename SharedPtr<int>::Type sp;