Вопрос, возможно, устарел, но я попробовал решение MattiasF, которое не было совершенным (я не виню).
IMO, использует заголовок doxygen_dummy в неправильном решении для shared_ptr.
Класс shared_ptr предназначен только для управления памятью и, безусловно, не требуется в документации по Doxygen.
На работе я использую INPUT_FILTER с sed. Я нашел хороший шаблон (mem :: это псевдоним пространства имен):
INPUT_FILTER = "sed -e \"s/mem::shared_ptr<\([a-zA-Z0-9_]*\)> /\1* /g\" -e \"s/mem::shared_ptr<\(.*\)> /\1* /g\""
Первый шаблон сопоставляет все shared_ptr с простыми шаблонами, что означает тип без шаблона.
Второй шаблон соответствует всем другим shared_ptr независимо от шаблонов сложного типа (с шаблоном).
Я обнаружил недостаток: полное имя в качестве шаблона, которое включает в себя '::', еще не обработано.
Решение, которое я еще не сделал, состоит в том, чтобы добавить «характер» :: в шаблоне первого sed.