2016-03-09 16 views
5

È possibile insegnare a Doxygen a riconoscere un membro di tipo std::shared_ptr<T> come aggregazione? Penso che lo faccia per i normali puntatori, anche se ho aggiunto BUILTIN_STL_SUPPORT=YES.Doxygen riconosce std :: shared_ptr o std :: map

La questione si estende anche a std::unique_ptr che dovrebbe essere una composizione, e penso std::map<K,V>, std::vector<V> ecc potrebbe essere documentate come composizione con molteplicità 1 ... N, anche se sono abbastanza sicuro che non voglio questo in tutti i casi .

Se ciò non è possibile con Doxygen, sarei interessato a sistemi di documentazione alternativi per C++.

risposta

2

A partire dalla versione 1.8.14, Doxygen non aggiunge std::shared_ptr<T> all'elenco interno delle classi std quando BUILTIN_STL_SUPPORT è attivo.

Ma è relativamente facile aggiungerlo modificando le sorgenti di Doxygen. In src/doxygen.cpp c'è una variabile globale g_stlinfo che contiene le definizioni delle classi standard. Inoltre, la funzione addSTLClasses() nella stessa classe ha un ramo per le classi di puntatore intelligente.

Fare riferimento a this changeset per modifiche minime per abilitare il supporto shared_ptr.

Purtroppo, non posso ancora rispondere al resto della domanda.