2010-03-23 9 views
13

Todas las clases de mi biblioteca están definidas dentro de un espacio de nombres. Cuando creo una página principal para Doxygen, tengo que usar explícitamente este espacio de nombres dentro de los comentarios para hacer que Doxygen genere enlaces. Me gustaría usar algo como "usar el espacio de nombres" para todo el bloque de comentarios."using namespace" para los comentarios de Doxygen

Un ejemplo:

/** 
* \mainpage My Library 
* 
* Use MyLibraryNamespace::MyClass to ... 
*/ 

Aquí Doxygen genera automáticamente un enlace a la documentación de MyLibraryNamespace :: MyClass.

/** 
* \mainpage My Library 
* 
* Use MyClass to ... 
*/ 

Aquí Doxygen no genera un enlace a la documentación de MyLibraryNamespace :: MyClass (ya que puede haber múltiples definiciones MiClase en diferentes espacios de nombres, supongo). Para facilitar la lectura, me gustaría omitir el prefijo del espacio de nombres en el comentario. ¿Es posible sin tener que escribir \ref MyLibraryNamespace::MyClass "MyClass" cada vez?

Respuesta

14

Puede hacer que esto funcione para un espacio de nombre poniendo su comentario dentro del espacio de nombres. Esto me molesta considerablemente ya que tenemos múltiples espacios de nombres anidados y odio tener que usarlos en los comentarios de Doxygen.

namespace MyLibraryNamespace { 
/** 
* \mainpage My Library 
* 
* Use MyClass to ... 
*/ 
}; 

2016 Update desde la perspectiva de rebajas

estoy usando Doxygen para los documentos de C# para Realm (sí Doxygen se encarga de la C# comentario XML formato típico también!). La página principal de rebajas utiliza el @ref para referirse a las clases de espacios de nombres:

The main classes you will use are: 

- [Realm](@ref Realms.Realm) 
- [RealmObject](@ref Realms.RealmObject) 
- [RealmList](@ref Realms.RealmList) 
- [Transaction](@ref Realms.Transaction) 

se puede ver una versión procesada online here

2

Puede utilizar alias de la siguiente manera:

ALIASES += refmylib{1}="@ref MyLibraryNamespace::\1 \"\1\""

Este es un ejemplo de uso:

/** * \mainpage My Library * * Use @refmylib{MyClass} to ... */

Y por encima serán procesados ​​por doxygen así:

/** * \mainpage My Library * * Use @ref MyLibraryNamespace::MyClass "MyClass" to ... */

Cuestiones relacionadas