2013-05-29 4 views
9

Die Doxygen Dokumentation sagt, dass \ ingroup verwendet werden kann, eine Entität zu mehreren Gruppen hinzuzufügen:Doxygen: Wie ein Element in mehreren Gruppen enthalten

\ingroup (<groupname> [<groupname> <groupname>]) 

Das Problem ist, dass ich es ausprobiert und Doxygen fügt den Rechtsträger um nur die letzte Gruppe in der Gruppenliste. So etwas wie

/** \ingroup A B 
* ... 
*/ 

fügt das Element A Modul, aber nicht beschränkt auf B. Weiß jemand, warum und wie es zu lösen?

Ich habe es mit Doxygen-Versionen 1.7.6.1 und 1.8.1.2 versucht.

Danke für Ihre Hilfe.

EDIT: Ich erkannte, dass doxygen eine Warnung ausgibt, die sagt:

Member X found in multiple @ingroup groups! The member will be put in group B, and not in group A 

Es scheint mir, dass dies mit der Dokumentation widersprüchlich.

ANTWORT: Ich antworte mir. Ich habe versucht, Funktionen zu mehreren Gruppen hinzuzufügen, aber die Dokumentation sagt "Beachten Sie, dass zusammengesetzte Entitäten (wie Klassen, Dateien und Namespaces) in mehrere Gruppen eingefügt werden können, aber Mitglieder (wie Variable, Funktionen, Typedefs und Enums) nur sein können Mitglied einer Gruppe ".

Antwort

7

Normalerweise müssen Sie (für zulässige Elemente, sagen wir eine Datei) nur eine Gruppe mit mehreren Gruppen schreiben. Lassen Sie mich, für die Vollständigkeit, eine Vorlage Ich benutze:

/** 
* \file 
* \ingroup GrpTest GrpLicense 
* \brief Here your brief explanation 
* \details And you put here a more detailed explanation to the 
* contents of the file. 
* \version 1.0 
* \date 2014-09-27 
* \author Dr Beco 
* \par Webpage 
* <<http://www.program.pg/>> 
* \copyright (c) 2014 GNU GPL v3 
* \note This program is free software: you can redistribute it 
* and/or modify it under the terms of the 
* GNU General Public License as published by 
* the Free Software Foundation version 3 of the License. 
* This program is distributed in the hope that it will be useful, 
* but WITHOUT ANY WARRANTY; without even the implied warranty of 
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 
* GNU General Public License for more details. 
* You should have received a copy of the GNU General Public License 
* along with this program. 
* If not, write to the Free Software Foundation, Inc., 
* 59 Temple Place - Suite 330, Boston, MA. 02111-1307, USA. 
* Or read it online at <<http://www.gnu.org/licenses/>>. 
* 
*/ 

nun vom Doxygen Documentation, speziell die Seite hier verlinkt sind, lesen Sie:

Note that compound entities (like classes, files and namespaces) 
can be put into multiple groups, 
but members (like variable, functions, typedefs and enums) 
can only be a member of one group 

Die Dokumentation erklärt auch, warum:

(this restriction is in place to avoid ambiguous linking 
targets in case a member is not documented in the context 
of its class, namespace or file, but only visible as part of a group). 

Also, kurz, Sie können leider keine Funktion (oder alle Arten von Entitäten, wie Sie nicht angegeben haben) zu mehreren Gruppen hinzufügen.

Ich hoffe, dieser Link hilft Ihnen bei weiteren Fragen.

1

Verwendung von

/** \ingroup A B 
* ... 
*/ 

wird das Element Gruppen A und B nur hinzufügen, wenn sie an anderer Stelle definiert sind. Wenn eine Gruppe nicht definiert ist, wird sie nicht definiert, nur weil sie in einem \ingroup Befehl verwendet wird.

Sie sollten die Elemente in Gruppe B unter Verwendung

/** \defgroup B 
* @{ 
* @} 
*/ 
/** \ingroup A B 
* ... 
*/ 
Lage sein,
Verwandte Themen