Table of Contents
- Using Vipr With This Writer
- 99 Of The Best Free HTML Templates To Make Your Website Sparkle
- MATLAB - Plotting - Tutorialspoint
128 Free Graphics Generators Choose a Text Style Most Popular - By Name. 1–56 of 128 items Generator Categories. First, choose from a gallery of high-quality, vector format logo templates. It's categorized by industry, making the editing experience quick and easy. We take great pride in the fact that all of our design templates are originals created by our team of talented designers.
- 1. Doxygen Documentation Generator
- 1.5. Example
1 Doxygen Documentation Generator
1.1 Overview
Doxygen is a tool that can generate project documentation in html, pdfor Latex from code comments formatted with Doxygen markup syntax. Thegenerated documentation makes easier to navigate and understand thecode as it may contain all public functions, classes, namespaces,enumerations, side notes and code examples.
- Author: Dimitri Van Heesch (1997)
- Official Web Site: http://www.doxygen.nl/
- Projects using Doxygen:
Supported Languages besides C++:
- C
- C++
- Fortran
- Objective-C
- C#
- PHP
- Python
- IDL (Corba, MIDL - Microsft Interface Definition Language)
- VHDL
- Tcl
- D-Language (Not full support)
Online Examples of Doxygen Documentation:
- SFML [Best] - Simple and Fast Multimedia Library
- Well known game development library.
- Doxygen Configuration:
- OpenCV [Best] - Open Source Computer Vision
- Doxygen Configuration:
- Magnum Graphics [Best] - Lightweight and modular C++11/C++14 graphicsmiddleware for games and data visualization https://magnum.graphics/
- Github: https://github.com/mosra/magnum
- Doxygen Configuration:
- OpenFoam - Open Source C++ library for CFD (Computational FluidDynamics) with toolboxes for fluid dynamics, chemical reactions,turbulence, heat transfer and so on.
- More at: https://en.wikipedia.org/wiki/OpenFOAM
- Doxygen Configuration:
- CERN's Root Framework
- Doxygen Configuration:
- Eigen3 - Template-based library for Linear Algebra.
- Ogre3D - Game Engine (Object-Oriented Graphics Rendering Engine)
- GslWrapper - C++ wrapper class for the GNU Scientific Library
Other C++ Documentation Generators:
- Github: foonathan/standardese
- Creator: Jonathan Müller
- A (work-in-progress) nextgen Doxygen for C++ - this documentationgenerator uses libclang as its parser. By using this library, thegenerator can extract more useful information and metadata aboutthe code.
- Video: Lightning Talks Meeting C++ 2016 - Jonathan Müller - Standardese
- QT5 QDoc (No well documented, lack examples.)
- Creator: QT Company
- 'QDoc is a tool used by Qt Developers to generate documentationfor software projects. It works by extracting QDoc comments fromproject source files and then formatting these comments as HTMLpages or DITA XML documents. QDoc finds QDoc comments in .cppfiles and in .qdoc files. QDoc does not look for QDoc comments in.h files.'
- NaturalDocs (Basic support for C++, full support only for C#.)
- 'Natural Docs lets you document code written in any of 20programming languages, plus it can be easily extended for more sowhatever you use, it can too. And if your project uses multiplelanguages, no problem! It will all be included in the same setof documentation.'
- Supported Languages: https://www.naturaldocs.org/languages/
- Sphinx
- Sphinx is a documentation generator for Python. However, it cangenerate C++ documentation by using the metadata created byDoxygen.
- ROBODoc - Official Web Site
Omnioutliner pro 5 5 3 3. Other Documentation Generators:
- Pydoc - Python standard documentation generator.
- Ddoc - Documentation Generator for D-language (Walter Bright)
See also:
- Comparison of Documentation Generator - Wikipedia
Using Vipr With This Writer
1.2 Installing Doxygen
Windows: https://bestfup110.weebly.com/audiobook-converter-2-4-1-download-free.html.
Installation via Chocolately:
Linux Distributions
Fedora Linux:
Ubuntu or Debian Linux: Zbrush 2020 1 12.
1.3 Doxygen Tags Ref Card
Tags for Documenting File
Note: Those tags should be placed at top of file.
Tag | Description |
---|---|
@file | File Name |
@author | Author name |
@brief | Short description |
@date | Date |
Example: => File: IDownloader.hpp
Tags for Documenting Functions, Classes, Methods and so on
Tag | Description |
---|---|
General Description | |
@brief | Brief description of class or function (fits a single line) |
@details | Details about class or function |
@author | Insert author name |
Function Or Method Documentation | |
@param | Function or method parameter description |
@param[in] | Input parameter (C-function) |
@param[out] | Output paramter of C-style function that returns multiple values |
@param[in, out] | Parameter used for both input and output in a C-style function. |
@tparam | Template type parameter |
@trhow | Specify exceptions that a function can throw |
@pre | Pre conditions |
@post | Post conditions |
@return | Description of return value or type. |
Code Blocks | |
@code … … @encode | C++ code example. |
Miscellaneous | |
@remark | Additional side-notes |
@note | Insert additional note |
@warning | |
@see SomeClass::Method | Reference to some class, method, or web site |
@li | Bullet point |
@todo | TODO annotation, reminders about what is still needs to be done. |
1.4 Doxyfile Settings
This section provides suitable settings for the Doxygen configurationfile Doxyfile generated with the command $ doxygen -g or with theapplication DoxyWizard.
Set project name:
Set project description:
Set Input directory
- Directory containing source code to be scanned. In this case, thisdirectory is set to ./src which contains all source codesrc/main.cpp, src/class1.hpp, class1.cpp and so on. The defaultvalue of the entry INPUT is the current directory where is theDoxyfile.
Set Output directory:
- Set the directory where html or latex documentation will begenerated.
Force code to be regarded as C++ code:
- Explanation: Header files intended to be used by both C and C++between the statements
_ifdef __cplusplus . #endif
can beunderstood by Doxygen as C-code, not C++ code. So, any class,struct, namespace of function defined in this namespace will bediscarded. The solution to this shortcoming is to notify Doxygenthat the macro__cplusplus
is defined.
Disable Latex Documentation Generation:
99 Of The Best Free HTML Templates To Make Your Website Sparkle
- Disabling Latex - makes the generation of documentationfaster. Besides that, processing Latex requires a huge number ofdependencies.
Entry: Distribute group doc:
Extract everything from source code
- This option is useful for undestandign new code.
Source browser
- Useful for navigating and understanding unfamiliar code.
1.5 Example
1.5.1 Overview
Files: Gist with full Code
Getting the sample code:
Generate html documentation: Sketch 46 2.
List generated documentation:
Open documentation in the browser:
If the project Doxyfile configuration file does not exist, a defaultone can be generated with Doxygen:
1.5.2 Type Aliases
Simple type alias:
Output:
Figure 1: Documentation of type alis MathFunc
Templated type alias
Figure 2: Documentation of type alias MathFunGen
1.5.3 Enumeration MathErrorCode
Enumeration code (file: mathutils.hpp):
Topaz detail 3 2 0. Output:
Figure 3: Doxygen enumeration MathErrorCode - A
1.5.4 Function NewtonSolver
File: mathutils.hpp
Output:
MATLAB - Plotting - Tutorialspoint
Figure 5: Documentation generated for function NewtonSolver
1.5.5 Templated Function GenericNewtonSolver
File: mathutils.hpp Studies 1 5.
Output:
Figure 6: Documentation of function GenericNewtonSolver - part 1
Figure 7: Documentation of function GenericNewtonSolver - part 2
1.5.6 C-Function daxpy
Output:
Figure 8: C-Function daxpy
1.5.7 Class XYChart
Output:
Figure 9: Documentation of class XYChart - part 1
Figure 10: Documentation of class XYChart - part 2
Principle figma. Constructor
Output:
Figure 11: Documentation of class XYChart - Constructor - part 3
Method addCurve
Figure 12: Documentation of class XYChart - Member function addCurve - part 3