Is it possible to teach Doxygen to recognize a member of type std::shared_ptr<T> as an aggregation? I think it does it for normal pointers, although I have added BUILTIN_STL_SUPPORT=YES.
The question also extends to std::unique_ptr which should be a composition, and I think std::map<K,V>, std::vector<V> etc could be documented as composition with multiplicity 1...N, although I am pretty sure I don't want this in all cases.
If this is not possible with Doxygen, I would be interested in alternative documentation systems for C++.