Imported Upstream version 1.8.15
[platform/upstream/doxygen.git] / doc / commands.doc
1 /******************************************************************************
2  *
3  *
4  *
5  * Copyright (C) 1997-2015 by Dimitri van Heesch.
6  *
7  * Permission to use, copy, modify, and distribute this software and its
8  * documentation under the terms of the GNU General Public License is hereby
9  * granted. No representations are made about the suitability of this software
10  * for any purpose. It is provided "as is" without express or implied warranty.
11  * See the GNU General Public License for more details.
12  *
13  * Documents produced by Doxygen are derivative works derived from the
14  * input used in their production; they are not affected by this license.
15  *
16  */
17 /*! \page commands Special Commands
18
19 \section cmd_intro Introduction
20
21 All commands in the documentation start with a backslash (<b>\\</b>) or an
22 at-sign (<b>\@</b>). If you prefer you can replace all commands starting with a
23 backslash below by their counterparts that start with an at-sign.
24
25 Some commands have one or more arguments.
26 Each argument has a certain range:
27 <ul>
28 <li>If \<sharp\> braces are used the argument is a single word.
29 <li>If (round) braces are used the argument extends until the end of the line
30     on which the command was found.
31 <li>If {curly} braces are used the argument extends until the next paragraph.
32     Paragraphs are delimited by a blank line or by a section indicator.
33 </ul>
34 If in addition to the above argument specifiers [square] brackets are used the argument is optional.
35
36 Here is an alphabetically sorted list of all commands with references to their
37 documentation:
38 \anchor showsecreflist
39 \secreflist
40 \refitem cmda \\a
41 \refitem cmdaddindex \\addindex
42 \refitem cmdaddtogroup \\addtogroup
43 \refitem cmdanchor \\anchor
44 \refitem cmdarg \\arg
45 \refitem cmdattention \\attention
46 \refitem cmdauthor \\author
47 \refitem cmdauthors \\authors
48 \refitem cmdb \\b
49 \refitem cmdbrief \\brief
50 \refitem cmdbug \\bug
51 \refitem cmdc \\c
52 \refitem cmdcallergraph \\callergraph
53 \refitem cmdcallgraph \\callgraph
54 \refitem cmdcategory \\category
55 \refitem cmdcite \\cite
56 \refitem cmdclass \\class
57 \refitem cmdcode \\code
58 \refitem cmdcond \\cond
59 \refitem cmdcopybrief \\copybrief
60 \refitem cmdcopydetails \\copydetails
61 \refitem cmdcopydoc \\copydoc
62 \refitem cmdcopyright \\copyright
63 \refitem cmddate \\date
64 \refitem cmddef \\def
65 \refitem cmddefgroup \\defgroup
66 \refitem cmddeprecated \\deprecated
67 \refitem cmddetails \\details
68 \refitem cmddiafile \\diafile
69 \refitem cmddir \\dir
70 \refitem cmddocbookonly \\docbookonly
71 \refitem cmddontinclude \\dontinclude
72 \refitem cmddot \\dot
73 \refitem cmddotfile \\dotfile
74 \refitem cmde \\e
75 \refitem cmdelse \\else
76 \refitem cmdelseif \\elseif
77 \refitem cmdem \\em
78 \refitem cmdemoji \\emoji
79 \refitem cmdendcode \\endcode
80 \refitem cmdendcond \\endcond
81 \refitem cmdenddocbookonly \\enddocbookonly
82 \refitem cmdenddot \\enddot
83 \refitem cmdendhtmlonly \\endhtmlonly
84 \refitem cmdendif \\endif
85 \refitem cmdendinternal \\endinternal
86 \refitem cmdendlatexonly \\endlatexonly
87 \refitem cmdendlink \\endlink
88 \refitem cmdendmanonly \\endmanonly
89 \refitem cmdendmsc \\endmsc
90 \refitem cmdendparblock \\endparblock
91 \refitem cmdendrtfonly \\endrtfonly
92 \refitem cmdendsecreflist \\endsecreflist
93 \refitem cmdendverbatim \\endverbatim
94 \refitem cmdenduml \\enduml
95 \refitem cmdendxmlonly \\endxmlonly
96 \refitem cmdenum \\enum
97 \refitem cmdexample \\example
98 \refitem cmdexception \\exception
99 \refitem cmdextends \\extends
100 \refitem cmdfdollar \\f\$
101 \refitem cmdfbropen \\f[
102 \refitem cmdfbrclose \\f]
103 \refitem cmdfcurlyopen \\f{
104 \refitem cmdfcurlyclose \\f}
105 \refitem cmdfile \\file
106 \refitem cmdfn \\fn
107 \refitem cmdheaderfile \\headerfile
108 \refitem cmdhidecallergraph \\hidecallergraph
109 \refitem cmdhidecallgraph \\hidecallgraph
110 \refitem cmdhiderefby \\hiderefby
111 \refitem cmdhiderefs \\hiderefs
112 \refitem cmdhideinitializer \\hideinitializer
113 \refitem cmdhtmlinclude \\htmlinclude
114 \refitem cmdhtmlonly \\htmlonly
115 \refitem cmdidlexcept \\idlexcept 
116 \refitem cmdif \\if
117 \refitem cmdifnot \\ifnot
118 \refitem cmdimage \\image
119 \refitem cmdimplements \\implements
120 \refitem cmdinclude \\include
121 \refitem cmdincludedoc \\includedoc
122 \refitem cmdincludelineno \\includelineno
123 \refitem cmdingroup \\ingroup
124 \refitem cmdinternal \\internal
125 \refitem cmdinvariant \\invariant
126 \refitem cmdinterface \\interface
127 \refitem cmdlatexinclude \\latexinclude
128 \refitem cmdlatexonly \\latexonly
129 \refitem cmdli \\li
130 \refitem cmdline \\line
131 \refitem cmdlink \\link
132 \refitem cmdmainpage \\mainpage
133 \refitem cmdmanonly \\manonly
134 \refitem cmdmemberof \\memberof
135 \refitem cmdmsc \\msc
136 \refitem cmdmscfile \\mscfile
137 \refitem cmdn \\n
138 \refitem cmdname \\name
139 \refitem cmdnamespace \\namespace
140 \refitem cmdnosubgrouping \\nosubgrouping
141 \refitem cmdnote \\note
142 \refitem cmdoverload \\overload
143 \refitem cmdp \\p
144 \refitem cmdpackage \\package
145 \refitem cmdpage \\page
146 \refitem cmdpar \\par
147 \refitem cmdparagraph \\paragraph
148 \refitem cmdparam \\param
149 \refitem cmdparblock \\parblock
150 \refitem cmdpost \\post
151 \refitem cmdpre \\pre
152 \refitem cmdprivate \\private
153 \refitem cmdprivatesection \\privatesection
154 \refitem cmdproperty \\property
155 \refitem cmdprotected \\protected
156 \refitem cmdprotectedsection \\protectedsection
157 \refitem cmdprotocol \\protocol
158 \refitem cmdpublic \\public
159 \refitem cmdpublicsection \\publicsection
160 \refitem cmdpure \\pure
161 \refitem cmdref \\ref
162 \refitem cmdrefitem \\refitem
163 \refitem cmdrelated \\related
164 \refitem cmdrelates \\relates
165 \refitem cmdrelatedalso \\relatedalso
166 \refitem cmdrelatesalso \\relatesalso
167 \refitem cmdremark \\remark
168 \refitem cmdremarks \\remarks
169 \refitem cmdresult \\result
170 \refitem cmdreturn \\return
171 \refitem cmdreturns \\returns
172 \refitem cmdretval \\retval
173 \refitem cmdrtfonly \\rtfonly
174 \refitem cmdsa \\sa
175 \refitem cmdsecreflist \\secreflist
176 \refitem cmdsection \\section
177 \refitem cmdsee \\see
178 \refitem cmdshort \\short
179 \refitem cmdshowinitializer \\showinitializer
180 \refitem cmdshowrefby \\showrefby
181 \refitem cmdshowrefs \\showrefs
182 \refitem cmdsince \\since
183 \refitem cmdskip \\skip
184 \refitem cmdskipline \\skipline
185 \refitem cmdsnippet \\snippet
186 \refitem cmdsnippetdoc \\snippetdoc
187 \refitem cmdsnippetlineno \\snippetlineno
188 \refitem cmdstartuml \\startuml
189 \refitem cmdstruct \\struct
190 \refitem cmdsubpage \\subpage
191 \refitem cmdsubsection \\subsection
192 \refitem cmdsubsubsection \\subsubsection
193 \refitem cmdtableofcontents \\tableofcontents
194 \refitem cmdtest \\test
195 \refitem cmdthrow \\throw
196 \refitem cmdthrows \\throws
197 \refitem cmdtodo \\todo
198 \refitem cmdtparam \\tparam
199 \refitem cmdtypedef \\typedef
200 \refitem cmdunion \\union
201 \refitem cmduntil \\until
202 \refitem cmdvar \\var
203 \refitem cmdverbatim \\verbatim
204 \refitem cmdverbinclude \\verbinclude
205 \refitem cmdversion \\version
206 \refitem cmdvhdlflow \\vhdlflow
207 \refitem cmdwarning \\warning
208 \refitem cmdweakgroup \\weakgroup
209 \refitem cmdxmlonly \\xmlonly
210 \refitem cmdxrefitem \\xrefitem
211 \refitem cmddollar \\\$
212 \refitem cmdat \\\@
213 \refitem cmdbackslash \\\\
214 \refitem cmdamp \\\&
215 \refitem cmdtilde \\~
216 \refitem cmdlt \\\<
217 \refitem cmdeq \\=
218 \refitem cmdgt \\\>
219 \refitem cmdhash \\\#
220 \refitem cmdperc \\\%
221 \refitem cmdquot \\\"
222 \refitem cmdchardot \\\.
223 \refitem cmddcolon \::
224 \refitem cmdpipe \\|
225 \refitem cmdndash \\\--
226 \refitem cmdmdash \\\---
227 \endsecreflist
228
229 The following subsections provide a list of all commands that are recognized by
230 doxygen. Unrecognized commands are treated as normal text.
231
232
233 \htmlonly</p><center><p>\endhtmlonly
234 <h2>
235 \htmlonly --- \endhtmlonly
236 Structural indicators
237 \htmlonly --- \endhtmlonly
238 </h2>
239 \htmlonly</p></center><p>\endhtmlonly
240
241 \section cmdaddtogroup \\addtogroup <name> [(title)]
242   \addindex \\addtogroup
243   Defines a group just like \ref cmddefgroup "\\defgroup", but in contrast to
244   that command using the same \<name\> more than once will not result in a warning,
245   but rather one group with a merged documentation and the first title found in
246   any of the commands.
247
248   The title is optional, so this command can also be used to add a number of
249   entities to an existing group using \c \@{ and \c \@} like this:
250
251 \verbatim
252   /*! \addtogroup mygrp
253    *  Additional documentation for group 'mygrp'
254    *  @{
255    */
256
257   /*!
258    *  A function
259    */
260   void func1()
261   {
262   }
263
264   /*! Another function */
265   void func2()
266   {
267   }
268
269   /*! @} */
270 \endverbatim
271
272   \sa page \ref grouping "Grouping", sections \ref cmddefgroup "\\defgroup", \ref cmdingroup "\\ingroup", and
273   \ref cmdweakgroup "\\weakgroup".
274
275 <hr>
276 \section cmdcallgraph \\callgraph
277
278   \addindex \\callgraph
279   When this command is put in a comment block of a function or method
280   and \ref cfg_have_dot "HAVE_DOT" is set to \c YES, then doxygen will
281   generate a call graph for that function (provided the implementation of the
282   function or method calls other documented functions). The call graph will be
283   generated regardless of the value of \ref cfg_call_graph "CALL_GRAPH".
284   \note The completeness (and correctness) of the call graph depends on the
285   doxygen code parser which is not perfect.
286
287   \sa section \ref cmdcallergraph "\\callergraph",
288       section \ref cmdhidecallgraph "\\hidecallgraph",
289       section \ref cmdhidecallergraph "\\hidecallergraph" and
290       option \ref cfg_call_graph "CALL_GRAPH"
291
292 <hr>
293 \section cmdhidecallgraph \\hidecallgraph
294
295   \addindex \\hidecallgraph
296   When this command is put in a comment block of a function or method
297   and then doxygen will not generate a call graph for that function. The
298   call graph will not be generated regardless of the value of
299   \ref cfg_call_graph "CALL_GRAPH".
300   \note The completeness (and correctness) of the call graph depends on the
301   doxygen code parser which is not perfect.
302
303   \sa section \ref cmdcallergraph "\\callergraph",
304       section \ref cmdcallgraph "\\callgraph",
305       section \ref cmdhidecallergraph "\\hidecallergraph" and
306       option \ref cfg_call_graph "CALL_GRAPH"
307
308 <hr>
309 \section cmdcallergraph \\callergraph
310
311   \addindex \\callergraph
312   When this command is put in a comment block of a function or method
313   and \ref cfg_have_dot "HAVE_DOT" is set to \c YES, then doxygen will
314   generate a caller graph for that function (provided the implementation of the
315   function or method is called by other documented functions). The caller graph will be
316   generated regardless of the value of \ref cfg_caller_graph "CALLER_GRAPH".
317   \note The completeness (and correctness) of the caller graph depends on the
318   doxygen code parser which is not perfect.
319
320   \sa section \ref cmdcallgraph "\\callgraph",
321       section \ref cmdhidecallgraph "\\hidecallgraph",
322       section \ref cmdhidecallergraph "\\hidecallergraph" and
323       option \ref cfg_caller_graph "CALLER_GRAPH"
324
325 <hr>
326 \section cmdhidecallergraph \\hidecallergraph
327
328   \addindex \\hidecallergraph
329   When this command is put in a comment block of a function or method
330   and then doxygen will not generate a caller graph for that function. The
331   caller graph will not be generated regardless of the value of
332   \ref cfg_caller_graph "CALLER_GRAPH".
333   \note The completeness (and correctness) of the caller graph depends on the
334   doxygen code parser which is not perfect.
335
336   \sa section \ref cmdcallergraph "\\callergraph",
337       section \ref cmdcallgraph "\\callgraph",
338       section \ref cmdhidecallgraph "\\hidecallgraph" and
339       option \ref cfg_caller_graph "CALLER_GRAPH"
340
341 <hr>
342 \section cmdshowrefby \\showrefby
343
344   \addindex \\showrefby
345   When this command is put in a comment block of a function, method or variable,
346   then doxygen will generate an overview for that function, method, variable of
347   the, documented, funcions and methods that call / use it.
348   The overview will be generated regardless of the value of
349   \ref cfg_referenced_by_relation "REFERENCED_BY_RELATION".
350   \note The completeness (and correctness) of the overview depends on the
351   doxygen code parser which is not perfect.
352
353   \sa section \ref cmdshowrefs "\\showrefs",
354       section \ref cmdhiderefby "\\hiderefby",
355       section \ref cmdhiderefs "\\hiderefs" and
356       option \ref cfg_referenced_by_relation "REFERENCED_BY_RELATION"
357
358 <hr>
359 \section cmdhiderefby \\hiderefby
360
361   \addindex \\hiderefby
362   When this command is put in a comment block of a function, method or variable
363   then doxygen will not generate an overview for that function, method or
364   variable of the functions and methods that call / use it.
365   The overview will not be generated regardless of the value of
366   \ref cfg_referenced_by_relation "REFERENCED_BY_RELATION".
367   \note The completeness (and correctness) of the overview depends on the
368   doxygen code parser which is not perfect.
369
370   \sa section \ref cmdshowrefs "\\showrefs",
371       section \ref cmdshowrefby "\\showrefby",
372       section \ref cmdhiderefs "\\hiderefs" and
373       option \ref cfg_referenced_by_relation "REFERENCED_BY_RELATION"
374
375 <hr>
376 \section cmdshowrefs \\showrefs
377
378   \addindex \\showrefs
379   When this command is put in a comment block of a function or method,
380   then doxygen will generate an overview for that function or method of the 
381   functions and methods that call it.
382   The overview will be generated regardless of the value of
383   \ref cfg_references_relation "REFERENCES_RELATION".
384   \note The completeness (and correctness) of the overview depends on the
385   doxygen code parser which is not perfect.
386
387   \sa section \ref cmdshowrefby "\\showrefby",
388       section \ref cmdhiderefby "\\hiderefby",
389       section \ref cmdhiderefs "\\hiderefs" and
390       option \ref cfg_references_relation "REFERENCES_RELATION"
391
392 <hr>
393 \section cmdhiderefs \\hiderefs
394
395   \addindex \\hiderefs
396   When this command is put in a comment block of a function or method
397   and then doxygen will not generate an overview for that function or method of
398   the functions and methods that call it.
399   The overview will not be generated regardless of the value of
400   \ref cfg_references_relation "REFERENCES_RELATION".
401   \note The completeness (and correctness) of the overview depends on the
402   doxygen code parser which is not perfect.
403
404   \sa section \ref cmdshowrefs "\\showrefs",
405       section \ref cmdshowrefby "\\showrefby",
406       section \ref cmdhiderefby "\\hiderefby" and
407       option \ref cfg_references_relation "REFERENCES_RELATION"
408
409 <hr>
410 \section cmdcategory \\category <name> [<header-file>] [<header-name>]
411
412   \addindex \\category
413   For Objective-C only: Indicates that a comment block contains documentation
414   for a class category with name \<name\>. The arguments are
415   equal to the \ref cmdclass "\\class" command.
416
417   \sa section \ref cmdclass "\\class".
418
419 <hr>
420 \section cmdclass \\class <name> [<header-file>] [<header-name>]
421
422   \addindex \\class
423   Indicates that a comment block contains documentation for a
424   class with name \<name\>. Optionally a header file and a header name
425   can be specified. If the header-file is specified, a link to a verbatim copy
426   of the header will be included in the HTML documentation.
427   The \<header-name\> argument can be used to overwrite the
428   name of the link that is used in the class documentation to something other
429   than \<header-file\>. This can be useful if the include name is not located
430   on the default include path (like \<X11/X.h\>). With the \<header-name\>
431   argument you can also specify how the include statement should look like,
432   by adding either quotes or sharp brackets around the name.
433   Sharp brackets are used if just the name is given. Note that the
434   last two arguments can also be specified using
435   the \ref cmdheaderfile "\\headerfile" command.
436
437   \par Example:
438   \include class.h
439   \htmlonly
440   Click <a href="examples/class/html/index.html">here</a>
441   for the corresponding HTML documentation that is generated by doxygen.
442   \endhtmlonly
443   \latexonly
444   See \hyperlink{class_example}{Class example}
445   for the corresponding \mbox{\LaTeX} documentation that is generated by doxygen.
446   \endlatexonly
447
448 </p><hr>
449 \section cmddef \\def <name>
450
451   \addindex \\def
452   Indicates that a comment block contains documentation for a
453   \c \#define macro.
454
455   \par Example:
456   \include define.h
457   \htmlonly
458   Click <a href="examples/define/html/define_8h.html">here</a>
459   for the corresponding HTML documentation that is generated by doxygen.
460   \endhtmlonly
461   \latexonly
462   See \hyperlink{define_8h}{Define example}
463   for the corresponding \mbox{\LaTeX} documentation that is generated by doxygen.
464   \endlatexonly
465
466 </p><hr>
467 \section cmddefgroup \\defgroup <name> (group title)
468
469   \addindex \\defgroup
470   Indicates that a comment block contains documentation for a
471   \ref modules "group" of classes, files or namespaces. This can be used to
472   categorize classes, files or namespaces, and document those
473   categories. You can also use groups as members of other groups,
474   thus building a hierarchy of groups.
475
476   The \<name\> argument should be a single-word identifier.
477
478   \sa page \ref grouping "Grouping", sections \ref cmdingroup "\\ingroup", \ref cmdaddtogroup "\\addtogroup", and
479   \ref cmdweakgroup "\\weakgroup".
480
481 <hr>
482 \section cmddir \\dir [<path fragment>]
483
484   \addindex \\dir
485   Indicates that a comment block contains documentation for a directory.
486   The "path fragment" argument should include the directory name and
487   enough of the path to be unique with respect to the other directories
488   in the project.
489   The \ref cfg_strip_from_path "STRIP_FROM_PATH" option determines what is
490   stripped from the full path before it appears in the output.
491
492 <hr>
493 \section cmdenum \\enum <name>
494
495   \addindex \\enum
496   Indicates that a comment block contains documentation for an
497   enumeration, with name \<name\>. If the enum is a member of a class and
498   the documentation block is located outside the class definition,
499   the scope of the class should be specified as well.
500   If a comment block is located directly in front of an enum declaration,
501   the \c \\enum comment may be omitted.
502
503   \par Note:
504   The type of an anonymous enum cannot be documented, but the values
505   of an anonymous enum can.
506
507   \par Example:
508   \include enum.h
509   \htmlonly
510   Click <a href="examples/enum/html/class_enum___test.html">here</a>
511   for the corresponding HTML documentation that is generated by doxygen.
512   \endhtmlonly
513   \latexonly
514   See \hyperlink{class_enum___test}{Enum example}
515   for the corresponding \mbox{\LaTeX} documentation that is generated by doxygen.
516   \endlatexonly
517
518 </p><hr>
519 \section cmdexample \\example[{lineno}] <file-name>
520
521   \addindex \\example
522   Indicates that a comment block contains documentation for a source code
523   example. The name of the source file is \<file-name\>.
524   The contents of this file will be included in the documentation, just after the
525   documentation contained in the comment block.
526   You can add option `{lineno}` to enable line numbers for the example if desired.
527   All examples are placed in a list. The source code is scanned for documented members and classes.
528   If any are found, the names are cross-referenced with the documentation.
529   Source files or directories can be specified using the
530   \ref cfg_example_path "EXAMPLE_PATH"
531   tag of doxygen's configuration file.
532
533   If \<file-name\> itself is not unique for the set of example files specified
534   by the
535   \ref cfg_example_path "EXAMPLE_PATH" tag, you can include part of the absolute path
536   to disambiguate it.
537
538   If more than one source file is needed for the example,
539   the \ref cmdinclude "\\include" command can be used.
540
541   \par Example:
542   \include example.cpp
543   Where the example file \c example_test.cpp looks as follows:
544   \include example_test.cpp
545   \htmlonly
546   Click <a href="examples/example/html/examples.html">here</a>
547   for the corresponding HTML documentation that is generated by doxygen.
548   \endhtmlonly
549   \latexonly
550   See \hyperlink{example_test_8cpp-example}{Example example}
551   for the corresponding \mbox{\LaTeX} documentation that is generated by doxygen.
552   \endlatexonly
553
554   \sa section \ref cmdinclude "\\include".
555
556 </p><hr>
557 \section cmdendinternal \\endinternal
558
559   \addindex \\endinternal
560   This command ends a documentation fragment that was started with a
561   \ref cmdinternal "\\internal" command. The text between \ref cmdinternal "\\internal" and
562   \c \\endinternal will only be visible
563   if \ref cfg_internal_docs "INTERNAL_DOCS" is set to \c YES.
564
565 <hr>
566 \section cmdextends \\extends <name>
567
568   \addindex \\extends
569   This command can be used to manually indicate an inheritance relation,
570   when the programming language does not support this concept natively
571   (e.g. C).
572
573   The file \c manual.c in the example directory shows how to use this command.
574
575   \htmlonly
576   Click <a href="examples/manual/html/index.html">here</a>
577   for the corresponding HTML documentation that is generated by doxygen.
578   \endhtmlonly
579   \latexonly
580   See \hyperlink{extends_example}{Extends example}
581   for the corresponding \mbox{\LaTeX} documentation that is generated by doxygen.
582   \endlatexonly
583
584   \sa section \ref cmdimplements "\\implements" and section
585       \ref cmdmemberof "\\memberof"
586
587 <hr>
588 \section cmdfile \\file [<name>]
589
590   \addindex \\file
591   Indicates that a comment block contains documentation for a source or
592   header file with name \<name\>. The file name may include (part of) the
593   path if the file-name alone is not unique. If the file name is omitted
594   (i.e. the line after \c \\file is left blank) then the documentation block that
595   contains the \c \\file command will belong to the file it is located in.
596
597   \par Important:
598   The documentation of global functions, variables, typedefs, and enums will
599   only be included in the output if the file they are in is documented as well.
600
601   \par Example:
602   \include file.h
603   \htmlonly
604   Click <a href="examples/file/html/file_8h.html">here</a>
605   for the corresponding HTML documentation that is generated by doxygen.
606   \endhtmlonly
607   \latexonly
608   See \hyperlink{file_example}{File example}
609   for the corresponding \mbox{\LaTeX} documentation that is generated by doxygen.
610   \endlatexonly
611
612   \note In the above example \ref cfg_javadoc_autobrief "JAVADOC_AUTOBRIEF"
613   has been set to \c YES in the configuration file.
614
615 </p><hr>
616 \section cmdfn \\fn (function declaration)
617
618   \addindex \\fn
619   Indicates that a comment block contains documentation for a function
620   (either global or as a member of a class). This command is \em only
621   needed if a comment block is \e not placed in front (or behind)
622   the function declaration or definition.
623
624   If your comment block \e is in front of the function
625   declaration or definition this command can (and to avoid redundancy
626   should) be omitted.
627
628   A full function declaration including arguments should be specified after the
629   \c \\fn command on a \e single line, since the argument ends at the end
630   of the line!
631
632   This command is equivalent to \ref cmdvar "\\var", \ref cmdtypedef "\\typedef",
633   and \ref cmdproperty "\\property".
634
635   \warning Do not use this command
636   if it is not absolutely needed, since it will lead to duplication of
637   information and thus to errors.
638
639   \par Example:
640   \include func.h
641   \htmlonly
642   Click <a href="examples/func/html/class_fn___test.html">here</a>
643   for the corresponding HTML documentation that is generated by doxygen.
644   \endhtmlonly
645   \latexonly
646   See \hyperlink{class_fn___test}{Fn example}
647   for the corresponding \mbox{\LaTeX} documentation that is generated by doxygen.
648   \endlatexonly
649
650   \sa sections \ref cmdvar "\\var", \ref cmdproperty "\\property", and
651                \ref cmdtypedef "\\typedef".
652
653 </p><hr>
654 \section cmdheaderfile \\headerfile <header-file> [<header-name>]
655
656   \addindex \\headerfile
657   Intended to be used for class, struct, or union documentation, where
658   the documentation is in front of the definition. The arguments of
659   this command are the same as the second and third argument of
660   \ref cmdclass "\\class".
661   The \<header-file\> name refers to the file that should be included by the
662   application to obtain the definition of the class, struct, or union.
663   The \<header-name\> argument can be used to overwrite the
664   name of the link that is used in the class documentation to something other
665   than \<header-file\>. This can be useful if the include name is not located
666   on the default include path (like \<X11/X.h\>).
667
668   With the \<header-name\>
669   argument you can also specify how the include statement should look like,
670   by adding either double quotes or sharp brackets around the name.
671   By default sharp brackets are used if just the name is given.
672
673   If a pair of double quotes is given for either the \<header-file\> or
674   \<header-name\> argument, the current file (in which the command was found)
675   will be used but with quotes. So for a comment block with a \c \\headerfile
676   command inside a file <code>test.h</code>, the following three commands are equivalent:
677   \verbatim
678   \headerfile test.h "test.h"
679   \headerfile test.h ""
680   \headerfile "" \endverbatim
681   To get sharp brackets you do not need to specify anything,
682   but if you want to be explicit you could use any of the following:
683   \verbatim
684   \headerfile test.h <test.h>
685   \headerfile test.h <>
686   \headerfile <> \endverbatim
687
688   To globally reverse the default include representation to
689   local includes you can set
690   \ref cfg_force_local_includes "FORCE_LOCAL_INCLUDES" to \c YES.
691
692   To disable the include information altogether set
693   \ref cfg_show_include_files "SHOW_INCLUDE_FILES" to \c NO.
694
695 <hr>
696 \section cmdhideinitializer \\hideinitializer
697
698   \addindex \\hideinitializer
699   By default the value of a define and the initializer of a variable
700   are displayed unless they are longer than 30 lines. By putting
701   this command in a comment block of a define or variable, the
702   initializer is always hidden. The maximum number of initialization lines
703   can be changed by means of the configuration parameter
704   \ref cfg_max_initializer_lines "MAX_INITIALIZER_LINES", the default 
705   value is 30.
706
707   \sa section \ref cmdshowinitializer "\\showinitializer".
708
709 <hr>
710 \section cmdidlexcept \\idlexcept <name> 
711   \addindex \\idlexcept
712
713   Indicates that a comment block contains documentation for a
714   IDL exception with name \<name\>.
715
716 <hr>
717 \section cmdimplements \\implements <name>
718
719   \addindex \\implements
720   This command can be used to manually indicate an inheritance relation,
721   when the programming language does not support this concept natively
722   (e.g. C).
723
724   The file \c manual.c in the example directory shows how to use this command.
725
726   \htmlonly
727   Click <a href="examples/manual/html/index.html">here</a>
728   for the corresponding HTML documentation that is generated by doxygen.
729   \endhtmlonly
730   \latexonly
731   See \hyperlink{extends_example}{Implements example}
732   for the corresponding \mbox{\LaTeX} documentation that is generated by doxygen.
733   \endlatexonly
734
735   \sa section \ref cmdextends "\\extends" and section
736       \ref cmdmemberof "\\memberof"
737
738 <hr>
739 \section cmdingroup \\ingroup (<groupname> [<groupname> <groupname>])
740
741   \addindex \\ingroup
742   If the \c \\ingroup command is placed in a comment block of a
743   class, file or namespace, then it will be added to the group or
744   groups identified by \<groupname\>.
745
746   \sa page \ref grouping "Grouping", sections \ref cmddefgroup "\\defgroup",
747   \ref cmdaddtogroup "\\addtogroup", and \ref cmdweakgroup "\\weakgroup"
748
749 <hr>
750 \section cmdinterface \\interface <name> [<header-file>] [<header-name>]
751
752   \addindex \\interface
753   Indicates that a comment block contains documentation for an
754   interface with name \<name\>. The arguments are equal to the arguments of the 
755   \ref cmdclass "\\class" command.
756
757   \sa section \ref cmdclass "\\class".
758
759 <hr>
760 \section cmdinternal \\internal
761
762   \addindex \\internal
763   This command starts a documentation fragment that is meant for internal
764   use only. The fragment naturally ends at the end of the comment block.
765   You can also force the internal section to end earlier by using the
766   \ref cmdendinternal "\\endinternal" command.
767
768   If the \c \\internal command is put inside a section
769   (see for example \ref cmdsection "\\section") all subsections after the
770   command are considered to be internal as well. Only a new section at the
771   same level will end the fragment that is considered internal.
772
773   You can use \ref cfg_internal_docs "INTERNAL_DOCS" in the configuration file
774   to show (\c YES) or hide (\c NO) the internal documentation.
775
776   \sa section \ref cmdendinternal "\\endinternal".
777
778
779 <hr>
780 \section cmdmainpage \\mainpage [(title)]
781
782   \addindex \\mainpage
783
784   If the \c \\mainpage command is placed in a comment block the
785   block is used to customize the index page (in HTML) or
786   the first chapter (in \LaTeX).
787
788   The title argument is optional and replaces the default title that
789   doxygen normally generates. If you do not want any title you can
790   specify \c notitle as the argument of \c \\mainpage.
791
792   Here is an example:
793 \verbatim
794 /*! \mainpage My Personal Index Page
795  *
796  * \section intro_sec Introduction
797  *
798  * This is the introduction.
799  *
800  * \section install_sec Installation
801  *
802  * \subsection step1 Step 1: Opening the box
803  *
804  * etc...
805  */
806 \endverbatim
807
808  You can refer to the main page using: <code>\ref cmdref "\\ref" index</code>.
809
810  \sa section \ref cmdsection "\\section",
811      section \ref cmdsubsection "\\subsection", and
812      section \ref cmdpage "\\page".
813
814 <hr>
815 \section cmdmemberof \\memberof <name>
816
817   \addindex \\memberof
818   This command makes a function a member of a class in a similar way
819   as \ref cmdrelates "\\relates" does, only with this command the function
820   is represented as a real member of the class.
821   This can be useful when the programming language does not support
822   the concept of member functions natively (e.g. C).
823
824   It is also possible to use this command together with
825   \ref cmdpublic "\\public", \ref cmdprotected "\\protected" or
826   \ref cmdprivate "\\private".
827
828   The file \c manual.c in the example directory shows how to use this command.
829
830   \htmlonly
831   Click <a href="examples/manual/html/index.html">here</a>
832   for the corresponding HTML documentation that is generated by doxygen.
833   \endhtmlonly
834
835   \sa sections \ref cmdextends "\\extends", \ref cmdimplements "\\implements",
836       \ref cmdpublic "\\public", \ref cmdprotected "\\protected" and
837       \ref cmdprivate "\\private".
838
839 </p><hr>
840 \section cmdname \\name [(header)]
841
842   \addindex \\name
843
844   This command turns a comment block into a header
845   definition of a member group. The
846   comment block should be followed by a
847   <code>//\@{ ... //\@}</code> block containing the
848   members of the group.
849
850   See section \ref memgroup for an example.
851
852 <hr>
853 \section cmdnamespace \\namespace <name>
854
855   \addindex \\namespace
856   Indicates that a comment block contains documentation for a
857   namespace with name \<name\>.
858
859 <hr>
860 \section cmdnosubgrouping \\nosubgrouping
861
862   \addindex \\nosubgrouping
863   This command can be put in the documentation
864   of a class. It can be used in combination with member grouping
865   to avoid that doxygen puts a member group as a subgroup of a
866   Public/Protected/Private/... section.
867
868   \sa sections \ref cmdpublicsection "\\publicsection",
869       \ref cmdprotectedsection "\\protectedsection" and
870       \ref cmdprivatesection "\\privatesection".
871
872 <hr>
873 \section cmdoverload \\overload [(function declaration)]
874
875   \addindex \\overload
876   This command can be used to generate the following
877   standard text for an overloaded member function:
878
879   > This is an overloaded member function, provided for convenience.
880   > It differs from the above function only in what argument(s) it accepts.
881
882   If the documentation for the overloaded member function is not located
883   in front of the function declaration or definition, the optional
884   argument should be used to specify the correct function.
885
886   Any other documentation that is inside the documentation block will
887   by appended after the generated message.
888
889   \par Note 1:
890     You are responsible that there is indeed an
891     earlier documented member that is overloaded by this one.
892     To prevent that document reorders the documentation you should set
893     \ref cfg_sort_member_docs "SORT_MEMBER_DOCS" to \c NO in this case.
894   \par Note 2:
895     The \c \\overload command does not work inside a one-line comment.
896   \par Example:
897   \include overload.cpp
898   \htmlonly
899   Click <a href="examples/overload/html/class_overload___test.html">here</a>
900   for the corresponding HTML documentation that is generated by doxygen.
901   \endhtmlonly
902   \latexonly
903   See \hyperlink{class_overload___test}{Overload example}
904   for the corresponding \mbox{\LaTeX} documentation that is generated by doxygen.
905   \endlatexonly
906
907 </p><hr>
908 \section cmdpackage \\package <name>
909
910   \addindex \\package
911   Indicates that a comment block contains documentation for a
912   Java package with name \<name\>.
913
914 <hr>
915 \section cmdpage \\page <name> (title)
916
917   \addindex \\page
918   Indicates that a comment block contains a piece of documentation that is
919   not directly related to one specific class, file or member.
920   The HTML generator creates a page containing the documentation. The
921   \LaTeX generator
922   starts a new section in the chapter 'Page documentation'.
923
924   \par Example:
925   \include page.doc
926   \htmlonly
927   Click <a href="examples/page/html/pages.html">here</a>
928   for the corresponding HTML documentation that is generated by doxygen.
929   \endhtmlonly
930   \latexonly
931   See \hyperlink{page_example}{Page example}
932   for the corresponding \mbox{\LaTeX} documentation that is generated by doxygen.
933   \endlatexonly
934
935   \par Note:
936      The \<name\> argument consists of a combination of letters and number
937      digits. If you wish to use upper case letters (e.g. \c MYPAGE1), or
938      mixed case letters (e.g. \c MyPage1) in the \<name\> argument, you
939      should set \ref cfg_case_sense_names "CASE_SENSE_NAMES" to \c YES. However, this is advisable
940      only if your file system is case sensitive. Otherwise (and for better
941      portability) you should use all lower case letters (e.g. \c mypage1)
942      for \<name\> in all references to the page.
943
944   \sa section \ref cmdsection "\\section", section
945               \ref cmdsubsection "\\subsection", and section
946               \ref cmdref "\\ref".
947
948 </p><hr>
949 \section cmdprivate \\private
950
951   \addindex \\private
952   Indicates that the member documented by the comment block is private,
953   i.e., should only be accessed by other members in the same class.
954
955   Note that doxygen automatically detects the protection level of members
956   in object-oriented languages. This command is intended for use only when
957   the language does not support the concept of protection level natively
958   (e.g. C, PHP 4).
959
960   For starting a section of private members, in a way similar to the
961   "private:" class marker in C++, use \ref cmdprivatesection "\\privatesection".
962
963   \sa sections \ref cmdmemberof "\\memberof", \ref cmdpublic "\\public",
964       \ref cmdprotected "\\protected" and \ref cmdprivatesection "\\privatesection".
965
966 <hr>
967 \section cmdprivatesection \\privatesection
968
969   \addindex \\privatesection
970   Starting a section of private members, in a way similar to the
971   "private:" class marker in C++.
972   Indicates that the member documented by the comment block is private,
973   i.e., should only be accessed by other members in the same class.
974
975   \sa sections \ref cmdmemberof "\\memberof", \ref cmdpublic "\\public",
976       \ref cmdprotected "\\protected" and \ref cmdprivate "\\private".
977
978 <hr>
979 \section cmdproperty \\property (qualified property name)
980
981   \addindex \\property
982   Indicates that a comment block contains documentation for a
983   property (either global or as a member of a class).
984   This command is equivalent to \ref cmdfn "\\fn",
985   \ref cmdtypedef "\\typedef", and \ref cmdvar "\\var".
986
987   \sa sections \ref cmdfn "\\fn", \ref cmdtypedef "\\typedef", and
988                \ref cmdvar "\\var".
989
990 <hr>
991 \section cmdprotected \\protected
992
993   \addindex \\protected
994   Indicates that the member documented by the comment block is protected,
995   i.e., should only be accessed by other members in the same or derived
996   classes.
997
998   Note that doxygen automatically detects the protection level of members
999   in object-oriented languages. This command is intended for use only when
1000   the language does not support the concept of protection level natively
1001   (e.g. C, PHP 4).
1002
1003   For starting a section of protected members, in a way similar to the
1004   "protected:" class marker in C++, use \ref cmdprotectedsection "\\protectedsection".
1005
1006   \sa sections \ref cmdmemberof "\\memberof", \ref cmdpublic "\\public",
1007       \ref cmdprivate "\\private" and \ref cmdprotectedsection "\\protectedsection".
1008
1009 <hr>
1010 \section cmdprotectedsection \\protectedsection
1011
1012   \addindex \\protectedsection
1013   Starting a section of protected members, in a way similar to the
1014   "protected:" class marker in C++.
1015   Indicates that the member documented by the comment block is protected,
1016   i.e., should only be accessed by other members in the same or derived
1017   classes.
1018
1019   \sa sections \ref cmdmemberof "\\memberof", \ref cmdpublic "\\public",
1020       \ref cmdprivate "\\private" and \ref cmdprotected "\\protected".
1021
1022 <hr>
1023 \section cmdprotocol \\protocol <name> [<header-file>] [<header-name>]
1024
1025   \addindex \\protocol
1026   Indicates that a comment block contains documentation for a
1027   protocol in Objective-C with name \<name\>. The arguments are equal
1028   to the \ref cmdclass "\\class" command.
1029
1030   \sa section \ref cmdclass "\\class".
1031
1032 <hr>
1033 \section cmdpublic \\public
1034
1035   \addindex \\public
1036   Indicates that the member documented by the comment block is public,
1037   i.e., can be accessed by any other class or function.
1038
1039   Note that doxygen automatically detects the protection level of members
1040   in object-oriented languages. This command is intended for use only when
1041   the language does not support the concept of protection level natively
1042   (e.g. C, PHP 4).
1043
1044   For starting a section of public members, in a way similar to the
1045   "public:" class marker in C++, use \ref cmdpublicsection "\\publicsection".
1046
1047   \sa sections \ref cmdmemberof "\\memberof", \ref cmdprotected "\\protected",
1048       \ref cmdprivate "\\private" and \ref cmdpublicsection "\\publicsection".
1049
1050 <hr>
1051 \section cmdpublicsection \\publicsection
1052
1053   \addindex \\publicsection
1054   Starting a section of public members, in a way similar to the
1055   "public:" class marker in C++.
1056   Indicates that the member documented by the comment block is public,
1057   i.e., can be accessed by any other class or function.
1058
1059   \sa sections \ref cmdmemberof "\\memberof", \ref cmdprotected "\\protected",
1060       \ref cmdprivate "\\private" and \ref cmdpublic "\\public".
1061
1062 <hr>
1063 \section cmdpure \\pure
1064
1065   \addindex \\pure
1066   Indicates that the member documented by the comment block is pure virtual,
1067   i.e., it is abstract and has no implementation associated with it.
1068
1069   This command is intended for use only when
1070   the language does not support the concept of pure virtual methods natively
1071   (e.g. C, PHP 4).
1072
1073 <hr>
1074 \section cmdrelates \\relates <name>
1075
1076   \addindex \\relates
1077   This command can be used in the documentation of a non-member function
1078   \<name\>. It puts the function inside the 'related function' section
1079   of the class documentation. This command is useful for documenting
1080   non-friend functions that are nevertheless strongly coupled to a certain
1081   class. It prevents the need of having to document a file, but
1082   only works for functions.
1083
1084   \par Example:
1085   \include relates.cpp
1086   \htmlonly
1087   Click <a href="examples/relates/html/class_string.html">here</a>
1088   for the corresponding HTML documentation that is generated by doxygen.
1089   \endhtmlonly
1090   \latexonly
1091   See \hyperlink{class_string}{Relates example}
1092   for the corresponding \mbox{\LaTeX} documentation that is generated by doxygen.
1093   \endlatexonly
1094
1095 </p><hr>
1096 \section cmdrelated \\related <name>
1097
1098   \addindex \\related
1099   Equivalent to \ref cmdrelates "\\relates"
1100
1101 <hr>
1102 \section cmdrelatesalso \\relatesalso <name>
1103
1104   \addindex \\relatesalso
1105   This command can be used in the documentation of a non-member function
1106   \<name\>. It puts the function both inside the 'related function' section
1107   of the class documentation as well as leaving it at its normal file documentation
1108   location. This command is useful for documenting
1109   non-friend functions that are nevertheless strongly coupled to a certain
1110   class. It only works for functions.
1111
1112 <hr>
1113 \section cmdrelatedalso \\relatedalso <name>
1114
1115   \addindex \\relatedalso
1116   Equivalent to \ref cmdrelatesalso "\\relatesalso"
1117
1118 <hr>
1119 \section cmdshowinitializer \\showinitializer
1120
1121   \addindex \\showinitializer
1122   By default the value of a define and the initializer of a variable
1123   are only displayed if they are less than 30 lines long. By putting
1124   this command in a comment block of a define or variable, the
1125   initializer is shown unconditionally.
1126   The maximum number of initialization lines
1127   can be changed by means of the configuration parameter
1128   \ref cfg_max_initializer_lines "MAX_INITIALIZER_LINES", the default value is
1129   30.
1130
1131   \sa section \ref cmdhideinitializer "\\hideinitializer".
1132
1133 <hr>
1134 \section cmdstatic \\static
1135
1136   \addindex \\static
1137   Indicates that the member documented by the comment block is static,
1138   i.e., it works on a class, instead of on an instance of the class.
1139
1140   This command is intended for use only when
1141   the language does not support the concept of static methods natively (e.g. C).
1142
1143 <hr>
1144 \section cmdstruct \\struct <name> [<header-file>] [<header-name>]
1145
1146   \addindex \\struct
1147   Indicates that a comment block contains documentation for a
1148   struct with name \<name\>. The arguments are equal to the arguments of the 
1149   \ref cmdclass "\\class" command.
1150
1151   \sa section \ref cmdclass "\\class".
1152
1153 <hr>
1154 \section cmdtypedef \\typedef (typedef declaration)
1155
1156   \addindex \\typedef
1157   Indicates that a comment block contains documentation for a
1158   typedef (either global or as a member of a class).
1159   This command is equivalent to \ref cmdfn "\\fn",
1160   \ref cmdproperty "\\property", and \ref cmdvar "\\var".
1161
1162   \sa section \ref cmdfn "\\fn", \ref cmdproperty "\\property", and
1163               \ref cmdvar "\\var".
1164
1165 <hr>
1166 \section cmdunion \\union <name> [<header-file>] [<header-name>]
1167
1168   \addindex \\union
1169   Indicates that a comment block contains documentation for a
1170   union with name \<name\>. The arguments are equal to the arguments of the 
1171   \ref cmdclass "\\class" command.
1172
1173   \sa section \ref cmdclass "\\class".
1174
1175 <hr>
1176 \section cmdvar \\var (variable declaration)
1177
1178   \addindex \\var
1179   Indicates that a comment block contains documentation for a variable or
1180   enum value (either global or as a member of a class).
1181   This command is equivalent to \ref cmdfn "\\fn",
1182   \ref cmdproperty "\\property", and \ref cmdtypedef "\\typedef".
1183
1184   Note that for PHP one can also specify the type of the variable.
1185   The syntax is similar as for the `phpDocumentor` but the description has to start
1186   at the next line, i.e.
1187 \verbatim
1188 @var  datatype $varname
1189 Description
1190 \endverbatim
1191
1192   \sa section \ref cmdfn "\\fn", \ref cmdproperty "\\property", and \ref cmdtypedef "\\typedef".
1193
1194 <hr>
1195 \section cmdvhdlflow \\vhdlflow [(title for the flow chart)]
1196
1197   \addindex \\vhdlflow
1198   This is a VHDL specific command, which can be put in the documentation of a process to
1199   produce a flow chart of the logic in the process. 
1200   Optionally a title for the flow chart can be given.
1201   \note Currently the flow chart will only appear in the HTML output.
1202
1203 <hr>
1204 \section cmdweakgroup \\weakgroup <name> [(title)]
1205   \addindex \\weakgroup
1206   Can be used exactly like \ref cmdaddtogroup "\\addtogroup", but has
1207   a lower priority when it comes to resolving conflicting grouping
1208   definitions.
1209
1210   \sa page \ref grouping "Grouping" and section \ref cmdaddtogroup "\\addtogroup".
1211
1212 <hr>
1213
1214 \htmlonly</p><center><p>\endhtmlonly
1215 <h2>
1216 \htmlonly --- \endhtmlonly
1217 Section indicators
1218 \htmlonly --- \endhtmlonly
1219 </h2>
1220 \htmlonly</p></center><p>\endhtmlonly
1221
1222 <hr>
1223 \section cmdattention \\attention { attention text }
1224
1225   \addindex \\attention
1226   Starts a paragraph where a message that needs attention may be entered.
1227   The paragraph will be indented.
1228   The text of the paragraph has no special internal structure. All visual
1229   enhancement commands may be used inside the paragraph.
1230   Multiple adjacent \c \\attention commands will be joined into a single paragraph.
1231   The \c \\attention command ends when a blank line or some other
1232   sectioning command is encountered.
1233
1234 <hr>
1235 \section cmdauthor \\author { list of authors }
1236
1237   \addindex \\author
1238   Starts a paragraph where one or more author names may be entered.
1239   The paragraph will be indented.
1240   The text of the paragraph has no special internal structure. All visual
1241   enhancement commands may be used inside the paragraph.
1242   Multiple adjacent \c \\author commands will be joined into a single paragraph.
1243   Each author description will start a new line. Alternatively, one \c \\author command
1244   may mention several authors. The \c \\author command ends when a blank line or some other
1245   sectioning command is encountered.
1246
1247   \par Example:
1248   \include author.cpp
1249   \htmlonly
1250   Click <a href="examples/author/html/class_some_nice_class.html">here</a>
1251   for the corresponding HTML documentation that is generated by doxygen.
1252   \endhtmlonly
1253   \latexonly
1254   See \hyperlink{class_some_nice_class}{Author example}
1255   for the corresponding \mbox{\LaTeX} documentation that is generated by doxygen.
1256   \endlatexonly
1257
1258 </p><hr>
1259 \section cmdauthors \\authors { list of authors }
1260
1261   \addindex \\authors
1262   Equivalent to \ref cmdauthor "\\author".
1263
1264 <hr>
1265 \section cmdbrief \\brief { brief description }
1266
1267   \addindex \\brief
1268   Starts a paragraph that serves as a brief description. For classes and files
1269   the brief description will be used in lists and at the start of the
1270   documentation page. For class and file members, the brief description
1271   will be placed at the declaration of the member and prepended to the
1272   detailed description. A brief description may span several lines (although
1273   it is advised to keep it brief!). A brief description ends when a
1274   blank line or another sectioning command is encountered. If multiple
1275   \c \\brief commands are present they will be joined. See section
1276   \ref cmdauthor "\\author" for an example.
1277
1278   Synonymous to \ref cmdshort "\\short".
1279
1280 <hr>
1281 \section cmdbug \\bug { bug description }
1282
1283   \addindex \\bug
1284   Starts a paragraph where one or more bugs may be reported.
1285   The paragraph will be indented.
1286   The text of the paragraph has no special internal structure. All visual
1287   enhancement commands may be used inside the paragraph.
1288   Multiple adjacent \c \\bug commands will be joined into a single paragraph.
1289   Each bug description will start on a new line.
1290   Alternatively, one \c \\bug command may mention
1291   several bugs. The \c \\bug command ends when a blank line or some other
1292   sectioning command is encountered. See section \ref cmdauthor "\\author"
1293   for an example.
1294
1295 <hr>
1296 \section cmdcond \\cond [(section-label)]
1297
1298   \addindex \\cond
1299   Starts a conditional section that ends with a corresponding
1300   \ref cmdendcond "\\endcond" command, which is typically found in
1301   another comment block. The main purpose of this pair of
1302   commands is to (conditionally) exclude part of a file from processing
1303   (in older version of doxygen this could only be achieved using C preprocessor commands).
1304
1305   The section between \c \\cond and \ref cmdendcond "\\endcond" can be included by
1306   adding its section label to the \ref cfg_enabled_sections "ENABLED_SECTIONS"
1307   configuration option. If the section label is omitted, the section will
1308   be excluded from processing unconditionally. The section label can be a 
1309   logical expression build of section labels, round brackets, && (AND), || (OR) and ! (NOT).
1310   If you use an expression you need to wrap it in round brackets, i.e 
1311   <tt>\\cond (!LABEL1 && LABEL2)</tt>.
1312
1313   For conditional sections within a comment block one should
1314   use a \ref cmdif "\\if" ... \ref cmdendif "\\endif" block.
1315
1316   Conditional sections can be nested. In this case a nested section will only
1317   be shown if it and its containing section are included.
1318
1319   Here is an example showing the commands in action:
1320
1321 \verbatim
1322 /** An interface */
1323 class Intf
1324 {
1325   public:
1326     /** A method */
1327     virtual void func() = 0;
1328
1329     /// @cond TEST
1330
1331     /** A method used for testing */
1332     virtual void test() = 0;
1333
1334     /// @endcond
1335 };
1336
1337 /// @cond DEV
1338 /*
1339  *  The implementation of the interface
1340  */
1341 class Implementation : public Intf
1342 {
1343   public:
1344     void func();
1345
1346     /// @cond TEST
1347     void test();
1348     /// @endcond
1349
1350     /// @cond
1351     /** This method is obsolete and does
1352      *  not show up in the documentation.
1353      */
1354     void obsolete();
1355     /// @endcond
1356 };
1357
1358 /// @endcond
1359 \endverbatim
1360
1361 The output will be different depending on whether or not \ref cfg_enabled_sections "ENABLED_SECTIONS"
1362 contains \c TEST, or \c DEV
1363
1364   \sa sections \ref cmdendcond "\\endcond" and  \ref cfg_enabled_sections "ENABLED_SECTIONS".
1365   \note Due to the moment of parsing the \c \\cond and \ref cmdendcond "\\endcond" commands cannot
1366   be used in \ref cfg_aliases "ALIASES".
1367
1368 <hr>
1369 \section cmdcopyright \\copyright { copyright description }
1370
1371   \addindex \\copyright
1372   Starts a paragraph where the copyright of an entity can be described.
1373   This paragraph will be indented.
1374   The text of the paragraph has no special internal structure.
1375   See section \ref cmdauthor "\\author" for an example.
1376
1377 <hr>
1378 \section cmddate \\date { date description }
1379
1380   \addindex \\date
1381   Starts a paragraph where one or more dates may be entered.
1382   The paragraph will be indented.
1383   The text of the paragraph has no special internal structure. All visual
1384   enhancement commands may be used inside the paragraph.
1385   Multiple adjacent \c \\date commands will be joined into a single paragraph.
1386   Each date description will start on a new line.
1387   Alternatively, one \c \\date command may mention
1388   several dates. The \c \\date command ends when a blank line or some other
1389   sectioning command is encountered. See section \ref cmdauthor "\\author"
1390   for an example.
1391
1392 <hr>
1393 \section cmddeprecated \\deprecated { description }
1394
1395   \addindex \\deprecated
1396   Starts a paragraph indicating that this documentation block belongs to
1397   a deprecated entity. Can be used to describe alternatives,
1398   expected life span, etc.
1399
1400 <hr>
1401 \section cmddetails \\details { detailed description }
1402
1403   \addindex \\details
1404   Just like \ref cmdbrief "\\brief" starts a brief description, \c \\details
1405   starts the detailed description. You can also start a new paragraph (blank line)
1406   then the \c \\details command is not needed.
1407
1408 <hr>
1409 \section cmdelse \\else
1410
1411   \addindex \\else
1412   Starts a conditional section if the previous conditional section
1413   was not enabled. The previous section should have been started with
1414   a \ref cmdif "\\if", \ref cmdifnot "\\ifnot", or \ref cmdelseif "\\elseif"
1415   command.
1416
1417   \sa \ref cmdif "\\if", \ref cmdifnot "\\ifnot", \ref cmdelseif "\\elseif",
1418       \ref cmdendif "\\endif."
1419
1420 <hr>
1421 \section cmdelseif \\elseif (section-label)
1422
1423   \addindex \\elseif
1424   Starts a conditional documentation section if the previous section
1425   was not enabled. A conditional section is
1426   disabled by default. To enable it you must put the
1427   section-label after the \ref cfg_enabled_sections "ENABLED_SECTIONS"
1428   tag in the configuration file.  The section label can be a logical expression
1429   build of section names, round brackets, && (AND), || (OR) and ! (NOT).
1430   Conditional blocks can be nested. A nested section is
1431   only enabled if all enclosing sections are enabled as well.
1432
1433   \sa sections \ref cmdendif "\\endif", \ref cmdifnot "\\ifnot",
1434               \ref cmdelse "\\else", and \ref cmdelseif "\\elseif".
1435
1436 <hr>
1437 \section cmdendcond \\endcond
1438
1439   \addindex \\endcond
1440   Ends a conditional section that was started by \ref cmdcond "\\cond".
1441
1442   \sa section \ref cmdcond "\\cond".
1443   \note Due to the moment of parsing the \c \\endcond and \ref cmdcond "\\cond" commands cannot
1444   be used in \ref cfg_aliases "ALIASES".
1445
1446 <hr>
1447 \section cmdendif \\endif
1448
1449   \addindex \\endif
1450   Ends a conditional section that was started by \ref cmdif "\\if" or \ref cmdifnot "\\ifnot"
1451   For each \ref cmdif "\\if" or \ref cmdifnot "\\ifnot" one and only one matching 
1452   \ref cmdendif "\\endif" must follow.
1453
1454   \sa sections \ref cmdif "\\if" and \ref cmdifnot "\\ifnot".
1455
1456 <hr>
1457 \section cmdexception \\exception <exception-object> { exception description }
1458
1459   \addindex \\exception
1460   Starts an exception description for an exception object with name
1461   \<exception-object\>. Followed by a description of the exception.
1462   The existence of the exception object is not checked.
1463   The text of the paragraph has no special internal structure. All visual
1464   enhancement commands may be used inside the paragraph.
1465   Multiple adjacent \c \\exception commands will be joined into a single paragraph.
1466   Each exception description will start on a new line.
1467   The \c \\exception description ends when a blank line or some other
1468   sectioning command is encountered. See section \ref cmdfn "\\fn" for an
1469   example.
1470
1471 <hr>
1472 \section cmdif \\if (section-label)
1473
1474   \addindex \\if
1475   Starts a conditional documentation section. The section ends
1476   with a matching \ref cmdendif "\\endif" command. A conditional section is
1477   disabled by default. To enable it you must put the
1478   section-label after the \ref cfg_enabled_sections "ENABLED_SECTIONS"
1479   tag in the configuration file.  
1480
1481   The section label can be a logical expression
1482   build of section names, round brackets, && (AND), || (OR) and ! (NOT).
1483   If you use an expression you need to wrap it in round brackets, i.e 
1484   <tt>\\cond (!LABEL1 && LABEL2)</tt>.
1485
1486   Conditional blocks can be nested. A nested section is
1487   only enabled if all enclosing sections are enabled as well.
1488
1489   \par Example:
1490 \verbatim
1491   /*! Unconditionally shown documentation.
1492    *  \if Cond1
1493    *    Only included if Cond1 is set.
1494    *  \endif
1495    *  \if Cond2
1496    *    Only included if Cond2 is set.
1497    *    \if Cond3
1498    *      Only included if Cond2 and Cond3 are set.
1499    *    \endif
1500    *    More text.
1501    *  \endif
1502    *  Unconditional text.
1503    */
1504 \endverbatim
1505
1506   You can also use conditional commands inside aliases. To
1507   document a class in two languages you could for instance use:
1508
1509 \par Example 2:
1510 \verbatim
1511 /*! \english
1512  *  This is English.
1513  *  \endenglish
1514  *  \dutch
1515  *  Dit is Nederlands.
1516  *  \enddutch
1517  */
1518 class Example
1519 {
1520 };
1521 \endverbatim
1522
1523   Where the following aliases are defined in the configuration file:
1524
1525 \verbatim
1526 ALIASES  = "english=\if english" \
1527            "endenglish=\endif" \
1528            "dutch=\if dutch" \
1529            "enddutch=\endif"
1530 \endverbatim
1531
1532   and \ref cfg_enabled_sections "ENABLED_SECTIONS" can be used to enable either \c english or \c dutch.
1533
1534   \sa sections \ref cmdendif "\\endif", \ref cmdifnot "\\ifnot",
1535                \ref cmdelse "\\else", \ref cmdelseif "\\elseif", and
1536                \ref cfg_enabled_sections "ENABLED_SECTIONS".
1537
1538 <hr>
1539 \section cmdifnot \\ifnot (section-label)
1540
1541   \addindex \\ifnot
1542   Starts a conditional documentation section. The section ends
1543   with a matching \ref cmdendif "\\endif" command. This conditional section is
1544   enabled by default. To disable it you must put the
1545   section-label after the \ref cfg_enabled_sections "ENABLED_SECTIONS"
1546   tag in the configuration file.  The section label can be a logical expression
1547   build of section names, round brackets, && (AND), || (OR) and ! (NOT).
1548
1549   \sa sections \ref cmdendif "\\endif", \ref cmdif "\\if",
1550                \ref cmdelse "\\else", and \ref cmdelseif "\\elseif", and
1551                \ref cfg_enabled_sections "ENABLED_SECTIONS".
1552
1553 <hr>
1554 \section cmdinvariant \\invariant { description of invariant }
1555
1556   \addindex \\invariant
1557   Starts a paragraph where the invariant of an entity can be described.
1558   The paragraph will be indented.
1559   The text of the paragraph has no special internal structure. All visual
1560   enhancement commands may be used inside the paragraph.
1561   Multiple adjacent \c \\invariant commands will be joined into a single paragraph.
1562   Each invariant description will start on a new line.
1563   Alternatively, one \c \\invariant command may mention
1564   several invariants. The \c \\invariant command ends when a blank line or some other
1565   sectioning command is encountered.
1566
1567 <hr>
1568 \section cmdnote \\note { text }
1569
1570   \addindex \\note
1571   Starts a paragraph where a note can be entered. The paragraph will be
1572   indented. The text of the paragraph has no special internal structure.
1573   All visual enhancement commands may be used inside the paragraph.
1574   Multiple adjacent \c \\note commands will be joined into a single paragraph.
1575   Each note description will start on a new line.
1576   Alternatively, one \c \\note command may mention
1577   several notes. The \c \\note command ends when a blank line or some other
1578   sectioning command is encountered. See section \ref cmdpar "\\par"
1579   for an example.
1580
1581 <hr>
1582 \section cmdpar \\par [(paragraph title)] { paragraph }
1583
1584   \addindex \\par
1585   If a paragraph title is given this command starts a paragraph with a
1586   user defined heading. The heading extends until the end of the
1587   line. The paragraph following the command will be indented.
1588
1589   If no paragraph title is given this command will start a new paragraph.
1590   This will also work inside other paragraph commands
1591   (like \ref cmdparam "\\param" or \ref cmdwarning "\\warning") without ending that command.
1592
1593   The text of the paragraph has no special internal structure. All visual
1594   enhancement commands may be used inside the paragraph.
1595   The \c \\par command ends when a blank line or some other
1596   sectioning command is encountered.
1597
1598   \par Example:
1599   \include par.cpp
1600   \htmlonly
1601   Click <a href="examples/par/html/class_par___test.html">here</a>
1602   for the corresponding HTML documentation that is generated by doxygen.
1603   \endhtmlonly
1604   \latexonly
1605   See \hyperlink{class_par___test}{Par example}
1606   for the corresponding \mbox{\LaTeX} documentation that is generated by doxygen.
1607   \endlatexonly
1608
1609 </p><hr>
1610 \section cmdparam \\param [(dir)] <parameter-name> { parameter description }
1611
1612   \addindex \\param
1613   Starts a parameter description for a function parameter with name
1614   \<parameter-name\>, followed by a description of the parameter.
1615   The existence of the parameter is checked and a warning is given if
1616   the documentation of this (or any other) parameter is missing or not
1617   present in the function declaration or definition.
1618
1619   The \c \\param command has an optional attribute, (dir), specifying the direction
1620   of the parameter. Possible values are "[in]", "[in,out]", and "[out]",
1621   note the [square] brackets in this description.
1622   When a parameter is both input and output, [in,out] is used as attribute.
1623   Here is an example for the function \c memcpy:
1624   \code
1625 /*!
1626  * Copies bytes from a source memory area to a destination memory area,
1627  * where both areas may not overlap.
1628  * @param[out] dest The memory area to copy to.
1629  * @param[in]  src  The memory area to copy from.
1630  * @param[in]  n    The number of bytes to copy
1631  */
1632 void memcpy(void *dest, const void *src, size_t n);
1633   \endcode
1634
1635   The parameter description is a paragraph with no special internal structure.
1636   All visual enhancement commands may be used inside the paragraph.
1637
1638   Multiple adjacent \c \\param commands will be joined into a single paragraph.
1639   Each parameter description will start on a new line.
1640   The \c \\param description ends when a blank line or some other
1641   sectioning command is encountered. See section \ref cmdfn "\\fn" for an
1642   example.
1643
1644   Note that you can also document multiple parameters with a single
1645   \c \\param command using a comma separated list. Here is an example:
1646
1647 \code
1648 /** Sets the position.
1649  *  @param x,y,z Coordinates of the position in 3D space.
1650  */
1651 void setPosition(double x,double y,double z,double t)
1652 {
1653 }
1654 \endcode
1655
1656   Note that for PHP one can also specify the type (or types if you
1657   separate them with a pipe symbol) which are allowed for a parameter
1658   (as this is not part of the definition).
1659   The syntax is the same as for the `phpDocumentor`, i.e.
1660 \verbatim
1661 @param  datatype1|datatype2 $paramname description
1662 \endverbatim
1663
1664 <hr>
1665 \section cmdparblock \\parblock
1666   \addindex \\parblock
1667   For commands that expect a single paragraph as argument
1668   (such as \ref cmdpar "\\par", \ref cmdparam "\\param" and \ref cmdwarning "\\warning"),
1669   the \ref cmdparblock "\\parblock" command allows to start a
1670   description that covers multiple paragraphs, which then ends with
1671   \ref cmdendparblock "\\endparblock".
1672
1673   Example:
1674 \verbatim
1675 /** Example of a param command with a description consisting of two paragraphs
1676  *  \param p 
1677  *  \parblock
1678  *  First paragraph of the param description.
1679  *
1680  *  Second paragraph of the param description.
1681  *  \endparblock
1682  *  Rest of the comment block continues.
1683  */
1684 \endverbatim
1685   Note that the \c \\parblock command may also appear directly after
1686   \ref cmdparam "\\param"'s first argument.
1687
1688 <hr>
1689 \section cmdendparblock \\endparblock
1690   \addindex \\endparblock
1691   This ends a block of paragraphs started with \ref cmdparblock "\\parblock".
1692
1693 <hr>
1694 \section cmdtparam \\tparam <template-parameter-name> { description }
1695
1696   \addindex \\tparam
1697   Starts a template parameter for a class or function template parameter
1698   with name \<template-parameter-name\>, followed by a description of the
1699   template parameter.
1700
1701   Otherwise similar to \ref cmdparam "\\param".
1702
1703 <hr>
1704 \section cmdpost \\post { description of the postcondition }
1705
1706   \addindex \\post
1707   Starts a paragraph where the postcondition of an entity can be described.
1708   The paragraph will be indented.
1709   The text of the paragraph has no special internal structure. All visual
1710   enhancement commands may be used inside the paragraph.
1711   Multiple adjacent \c \\post commands will be joined into a single paragraph.
1712   Each postcondition will start on a new line.
1713   Alternatively, one \c \\post command may mention
1714   several postconditions. The \c \\post command ends when a blank line or some other
1715   sectioning command is encountered.
1716
1717 <hr>
1718 \section cmdpre \\pre { description of the precondition }
1719
1720   \addindex \\pre
1721   Starts a paragraph where the precondition of an entity can be described.
1722   The paragraph will be indented.
1723   The text of the paragraph has no special internal structure. All visual
1724   enhancement commands may be used inside the paragraph.
1725   Multiple adjacent \c \\pre commands will be joined into a single paragraph.
1726   Each precondition will start on a new line.
1727   Alternatively, one \c \\pre command may mention
1728   several preconditions. The \c \\pre command ends when a blank line or some other
1729   sectioning command is encountered.
1730
1731 <hr>
1732 \section cmdremark \\remark { remark text }
1733
1734   \addindex \\remark
1735   Starts a paragraph where one or more remarks may be entered.
1736   The paragraph will be indented.
1737   The text of the paragraph has no special internal structure. All visual
1738   enhancement commands may be used inside the paragraph.
1739   Multiple adjacent \c \\remark commands will be joined into a single paragraph.
1740   Each remark will start on a new line.
1741   Alternatively, one \c \\remark command may mention
1742   several remarks. The \c \\remark command ends when a blank line or some other
1743   sectioning command is encountered.
1744
1745 <hr>
1746 \section cmdremarks \\remarks { remark text }
1747
1748   \addindex \\remarks
1749   Equivalent to \ref cmdremark "\\remark".
1750
1751 <hr>
1752 \section cmdresult \\result { description of the result value }
1753
1754   \addindex \\result
1755   Equivalent to \ref cmdreturn "\\return".
1756
1757 <hr>
1758 \section cmdreturn \\return { description of the return value }
1759
1760   \addindex \\return
1761   Starts a return value description for a function.
1762   The text of the paragraph has no special internal structure. All visual
1763   enhancement commands may be used inside the paragraph.
1764   Multiple adjacent \c \\return commands will be joined into a single paragraph.
1765   The \c \\return description ends when a blank line or some other
1766   sectioning command is encountered. See section \ref cmdfn "\\fn" for an
1767   example.
1768
1769 <hr>
1770 \section cmdreturns \\returns { description of the return value }
1771
1772   \addindex \\returns
1773   Equivalent to \ref cmdreturn "\\return".
1774
1775 <hr>
1776 \section cmdretval \\retval <return value> { description }
1777
1778   \addindex \\retval
1779   Starts a description for a function's return value with name
1780   \<return value\>, followed by a description of the return value.
1781   The text of the paragraph that forms the description has no special
1782   internal structure. All visual enhancement commands may be used inside the
1783   paragraph.
1784   Multiple adjacent \c \\retval commands will be joined into a single paragraph.
1785   Each return value description will start on a new line.
1786   The \c \\retval description ends when a blank line or some other
1787   sectioning command is encountered.
1788
1789 <hr>
1790 \section cmdsa \\sa { references }
1791
1792   \addindex \\sa
1793   Starts a paragraph where one or more cross-references to classes,
1794   functions, methods, variables, files or URL may be specified.
1795   Two names joined by either <code>::</code> or <code>\#</code>
1796   are understood as referring to a class and one of its members.
1797   One of several overloaded methods or constructors
1798   may be selected by including a parenthesized list of argument types after
1799   the method name.
1800
1801   Synonymous to \ref cmdsee "\\see".
1802
1803   \sa section \ref autolink "autolink" for information on how to create links
1804       to objects.
1805
1806 <hr>
1807 \section cmdsee \\see { references }
1808
1809   \addindex \\see
1810   Equivalent to \ref cmdsa "\\sa". Introduced for compatibility with Javadoc.
1811
1812 <hr>
1813 \section cmdshort \\short { short description }
1814
1815   \addindex \\short
1816   Equivalent to \ref cmdbrief "\\brief".
1817
1818 <hr>
1819 \section cmdsince \\since { text }
1820
1821   \addindex \\since
1822   This command can be used to specify since when (version or time) an
1823   entity is available. The paragraph that follows \c \\since does not have any
1824   special internal structure. All visual enhancement commands may be
1825   used inside the paragraph. The \c \\since description ends when a blank
1826   line or some other sectioning command is encountered.
1827
1828 <hr>
1829 \section cmdtest \\test { paragraph describing a test case }
1830
1831   \addindex \\test
1832   Starts a paragraph where a test case can be described.
1833   The description will also add the test case to a separate test list.
1834   The two instances of the description will be cross-referenced.
1835   Each test case in the test list will be preceded by a header that
1836   indicates the origin of the test case.
1837
1838 <hr>
1839 \section cmdthrow \\throw <exception-object> { exception description }
1840
1841   \addindex \\throw
1842   Synonymous \ref cmdexception "\\exception".
1843
1844   \par Note:
1845   the command \ref cmdthrows "\\throws" is a synonym for this command.
1846
1847   \sa section \ref cmdexception "\\exception"
1848
1849 <hr>
1850 \section cmdthrows \\throws <exception-object> { exception description }
1851
1852   \addindex \\throws
1853   Equivalent to \ref cmdthrow "\\throw".
1854
1855 <hr>
1856 \section cmdtodo \\todo { paragraph describing what is to be done }
1857
1858   \addindex \\todo
1859   Starts a paragraph where a TODO item is described.
1860   The description will also add an item to a separate TODO list.
1861   The two instances of the description will be cross-referenced.
1862   Each item in the TODO list will be preceded by a header that
1863   indicates the origin of the item.
1864
1865 <hr>
1866 \section cmdversion \\version { version number }
1867
1868   \addindex \\version
1869   Starts a paragraph where one or more version strings may be entered.
1870   The paragraph will be indented.
1871   The text of the paragraph has no special internal structure. All visual
1872   enhancement commands may be used inside the paragraph.
1873   Multiple adjacent \c \\version commands will be joined into a single paragraph.
1874   Each version description will start on a new line.
1875   Alternatively, one \c \\version command may mention
1876   several version strings.
1877   The \\version command ends when a blank line or some other
1878   sectioning command is encountered. 
1879   See section \ref cmdauthor "\\author" for an example.
1880
1881 <hr>
1882 \section cmdwarning \\warning { warning message }
1883
1884   \addindex \\warning
1885   Starts a paragraph where one or more warning messages may be entered.
1886   The paragraph will be indented.
1887   The text of the paragraph has no special internal structure. All visual
1888   enhancement commands may be used inside the paragraph.
1889   Multiple adjacent \c \\warning commands will be joined into a single paragraph.
1890   Each warning description will start on a new line.
1891   Alternatively, one \c \\warning command may mention
1892   several warnings. The \c \\warning command ends when a blank line or some other
1893   sectioning command is encountered. See section \ref cmdauthor "\\author"
1894   for an example.
1895
1896 <hr>
1897 \section cmdxrefitem \\xrefitem <key> "(heading)" "(list title)" { text }
1898
1899  \addindex \\xrefitem
1900  This command is a generalization of commands such as \ref cmdtodo "\\todo"
1901  and \ref cmdbug "\\bug".
1902  It can be used to create user-defined text sections which are automatically
1903  cross-referenced between the place of occurrence and a related page,
1904  which will be generated. On the related page all sections of
1905  the same type will be collected.
1906
1907  The first argument \<key\> is an
1908  identifier uniquely representing the type of the section. The second argument
1909  is a quoted string representing the heading of the section under which
1910  text passed as the fourth argument is put. The third argument (list title)
1911  is used as the title for the related page containing all items with the
1912  same key. The keys \c "todo", \c "test", \c "bug" and \c "deprecated" are predefined.
1913
1914  To get an idea on how to use the \c \\xrefitem command and what its effect
1915  is, consider the todo list, which (for English output) can be seen an
1916  alias for the command
1917  \verbatim \xrefitem todo "Todo" "Todo List" \endverbatim
1918
1919  Since it is very tedious and error-prone to repeat the first three
1920  parameters of the command for each section, the command is meant to
1921  be used in combination with the \ref cfg_aliases "ALIASES" option in the
1922  configuration file.
1923  To define a new command \c \\reminder, for instance, one should add the following
1924  line to the configuration file:
1925  \verbatim ALIASES += "reminder=\xrefitem reminders \"Reminder\" \"Reminders\"" \endverbatim
1926  Note the use of escaped quotes for the second and third argument of the
1927  \c \\xrefitem command.
1928
1929  In case parameter "(heading)" is the empty string no heading is generated. This can be useful
1930  when used in combination with the \ref cmdpage "\\page" command e.g.
1931 \verbatim
1932 /** @page my_errors My Errors
1933  *  @brief Errors page
1934  *
1935  *  Errors page contents.
1936  */
1937
1938 /** \error ERROR 101: in case a file can not be opened.
1939     Check about file system read/write access. */
1940 #define MY_ERR_CANNOT_OPEN_FILE                   101
1941
1942 /** \error ERROR 102: in case a file can not be closed.
1943     Check about file system read/write access. */
1944 #define MY_ERR_CANNOT_CLOSE_FILE                  102
1945 \endverbatim
1946  with \c \\error defined as
1947  \verbatim ALIASES += "error=\xrefitem my_errors \"\" \"\"" \endverbatim
1948
1949 <hr>
1950
1951 \htmlonly</p><center><p>\endhtmlonly
1952 <h2>
1953 \htmlonly --- \endhtmlonly
1954 Commands to create links
1955 \htmlonly --- \endhtmlonly
1956 </h2>
1957 \htmlonly</p></center><p>\endhtmlonly
1958
1959 <hr>
1960 \section cmdaddindex \\addindex (text)
1961
1962   \addindex \\addindex
1963   This command adds (text) to the \LaTeX , DocBook and RTF index.
1964
1965 <hr>
1966 \section cmdanchor \\anchor <word>
1967
1968   \addindex \\anchor
1969   This command places an invisible, named anchor into the documentation
1970   to which you can refer with the \ref cmdref "\\ref" command.
1971
1972   \note Anchors can currently only be put into a comment block
1973   that is marked as a page (using \ref cmdpage "\\page") or mainpage
1974   (\ref cmdmainpage "\\mainpage").
1975
1976   \sa section \ref cmdref "\\ref".
1977
1978 <hr>
1979 \section cmdcite \\cite <label>
1980
1981   \addindex \\cite
1982   Adds a bibliographic reference in the text and in the list of bibliographic
1983   references. The \<label\> must be a valid BibTeX label that can be found 
1984   in one of the .bib files listed in \ref cfg_cite_bib_files "CITE_BIB_FILES".  
1985   For the \LaTeX output the formatting of the reference in the text can be 
1986   configured with \ref cfg_latex_bib_style "LATEX_BIB_STYLE". For other
1987   output formats a fixed representation is used. Note that using this
1988   command requires the \c bibtex tool to be present in the search path.
1989
1990 <hr>
1991 \section cmdendlink \\endlink
1992
1993   \addindex \\endlink
1994   This command ends a link that is started with the \ref cmdlink "\\link" command.
1995
1996   \sa section \ref cmdlink "\\link".
1997
1998 <hr>
1999 \section cmdlink \\link <link-object>
2000
2001   \addindex \\link
2002   The links that are automatically generated by doxygen always have the
2003   name of the object they point to as link-text.
2004
2005   The \c \\link command can be used to create a link to an object (a file,
2006   class, or member) with a user specified link-text.
2007   The link command should end with an \ref cmdendlink "\\endlink" command. All text between
2008   the \c \\link and \ref cmdendlink "\\endlink" commands serves as text for a link to
2009   the \<link-object\> specified as the first argument of \c \\link.
2010
2011   \sa Section \ref autolink "autolink" for more information on automatically
2012   generated links and valid link-objects.
2013
2014 <hr>
2015 \section cmdref \\ref <name> ["(text)"]
2016
2017   \addindex \\ref
2018   Creates a reference to a named section, subsection, page or anchor.
2019   For HTML documentation the reference command will generate a link to
2020   the section. For a section or subsection the title of the section will be
2021   used as the text of the link. For an anchor the optional text between quotes
2022   will be used or \<name\> if no text is specified.
2023   For \LaTeX documentation the reference command will
2024   generate a section number for sections or the text followed by a
2025   page number if \<name\> refers to an anchor.
2026
2027   \sa
2028     Section \ref cmdpage "\\page" for an example of the \c \\ref command.
2029
2030 <hr>
2031 \section cmdrefitem \\refitem <name>
2032   \addindex \\refitem
2033   Just like the \ref cmdref "\\ref" command, this command creates a reference 
2034   to a named section, but this reference appears in a list that is started by 
2035   \ref cmdsecreflist "\\secreflist"
2036   and ends with \ref cmdendsecreflist "\\endsecreflist".
2037   An example of such a list can be seen 
2038   \ref showsecreflist "at the top of the page".
2039
2040 <hr>
2041 \section cmdsecreflist \\secreflist
2042   \addindex \\secreflist
2043   Starts an index list of item, created with \ref cmdrefitem "\\refitem" 
2044   that each link to a named section.
2045
2046 <hr>
2047 \section cmdendsecreflist \\endsecreflist
2048   \addindex \\endsecreflist
2049   End an index list started with \ref cmdsecreflist "\\secreflist".
2050
2051 <hr>
2052 \section cmdsubpage \\subpage <name> ["(text)"]
2053
2054   \addindex \\subpage
2055   This command can be used to create a hierarchy of pages. The
2056   same structure can be made using the \ref cmddefgroup "\\defgroup" and
2057   \ref cmdingroup "\\ingroup" commands, but for pages the \c \\subpage command
2058   is often more convenient. The main page (see \ref cmdmainpage "\\mainpage")
2059   is typically the root of hierarchy.
2060
2061   This command behaves similar as \ref cmdref "\\ref" in the sense that
2062   it creates a reference to a page labeled \<name\> with the optional
2063   link text as specified in the second argument.
2064
2065   It differs from the \ref cmdref "\\ref" command in that it only works for pages,
2066   and creates a parent-child relation between pages, where the
2067   child page (or sub page) is identified by label \<name\>.
2068
2069   See the \ref cmdsection "\\section"
2070   and \ref cmdsubsection "\\subsection" commands if you want to add structure
2071   without creating multiple pages.
2072
2073   \note Each page can be the sub page of only one other page and
2074   no cyclic relations are allowed, i.e. the page hierarchy must have a tree
2075   structure.
2076
2077   Here is an example:
2078 \verbatim
2079 /*! \mainpage A simple manual
2080
2081 Some general info.
2082
2083 This manual is divided in the following sections:
2084 - \subpage intro
2085 - \subpage advanced "Advanced usage"
2086 */
2087
2088 //-----------------------------------------------------------
2089
2090 /*! \page intro Introduction
2091 This page introduces the user to the topic.
2092 Now you can proceed to the \ref advanced "advanced section".
2093 */
2094
2095 //-----------------------------------------------------------
2096
2097 /*! \page advanced Advanced Usage
2098 This page is for advanced users.
2099 Make sure you have first read \ref intro "the introduction".
2100 */
2101 \endverbatim
2102
2103 <hr>
2104 \section cmdtableofcontents \\tableofcontents['{'[option[:level]][,option[:level]]*'}']
2105
2106   \addindex \\tableofcontents
2107   Creates a table of contents at the top of a page, listing all
2108   sections and subsections in the page. The `option` can be `HTML` or `LaTeX`
2109   or `XML` or `DocBook`. When a `level` is specified this means the maximum nesting level
2110   that is shown. The value of `level` should be in the range 1..5, values outside
2111   this range are considered to be 5. In case no `level` is specified `level` is
2112   set to 5 (show all)
2113   In case no `option`. is specified \c \\tableofcontents acts as if just the
2114   `option` `HTML` and `XML` was specified. In case of multiple \c \\tableofcontents
2115   commands in a page the `option`(s) will be used additional to the already
2116   specified `option`(s), but only the last `level` of an `option` is valid.
2117
2118   \warning This command only works inside related page documentation and
2119            \e not in other documentation blocks and only has effect in the
2120            the specified output!
2121
2122 <hr>
2123 \section cmdsection \\section <section-name> (section title)
2124
2125   \addindex \\section
2126   Creates a section with name \<section-name\>. The title of the
2127   section should be specified as the second argument of the \c \\section
2128   command.
2129
2130   \warning This command only works inside related page documentation and
2131            \e not in other documentation blocks!
2132
2133   \sa
2134    Section \ref cmdpage "\\page" for an example of the
2135            \c \\section command.
2136
2137 <hr>
2138 \section cmdsubsection \\subsection <subsection-name> (subsection title)
2139
2140   \addindex \\subsection
2141   Creates a subsection with name \<subsection-name\>. The title of the
2142   subsection should be specified as the second argument of the \c \\subsection
2143   command.
2144
2145   \warning This command only works inside a section of a related page
2146            documentation block and
2147            \e not in other documentation blocks!
2148
2149   \sa
2150    Section \ref cmdpage "\\page" for an example of the
2151            \c \\subsection command.
2152
2153 <hr>
2154 \section cmdsubsubsection \\subsubsection <subsubsection-name> (subsubsection title)
2155
2156   \addindex \\subsubsection
2157   Creates a subsubsection with name \<subsubsection-name\>. The title of the
2158   subsubsection should be specified as the second argument of the
2159   \c \\subsubsection command.
2160
2161   \warning This command only works inside a subsection of a
2162            related page documentation block and
2163            \e not in other documentation blocks!
2164
2165   \sa
2166    Section \ref cmdpage "\\page" for an example of the
2167            \ref cmdsection "\\section" command and
2168            \ref cmdsubsection "\\subsection" command.
2169
2170 <hr>
2171 \section cmdparagraph \\paragraph <paragraph-name> (paragraph title)
2172
2173   \addindex \\paragraph
2174   Creates a named paragraph with name \<paragraph-name\>. The title of the
2175   paragraph should be specified as the second argument of the
2176   \c \\paragraph command.
2177
2178   \warning This command only works inside a subsubsection of a
2179            related page documentation block and
2180            \e not in other documentation blocks!
2181
2182 <hr>
2183
2184 \htmlonly</p><center><p>\endhtmlonly
2185 <h2>
2186 \htmlonly --- \endhtmlonly
2187 Commands for displaying examples
2188 \htmlonly --- \endhtmlonly
2189 </h2>
2190 \htmlonly</p></center><p>\endhtmlonly
2191
2192 <hr>
2193 \section cmddontinclude \\dontinclude <file-name>
2194
2195   \addindex \\dontinclude
2196   This command can be used to parse a source file without actually
2197   verbatim including it in the documentation (as the \ref cmdinclude "\\include" command does).
2198   This is useful if you want to divide the source file into smaller pieces and
2199   add documentation between the pieces.
2200   Source files or directories can be specified using the
2201   \ref cfg_example_path "EXAMPLE_PATH"
2202   tag of doxygen's configuration file.
2203
2204   The class and member declarations and definitions inside the code fragment
2205   are 'remembered' during the parsing of the comment block that contained
2206   the \c \\dontinclude command.
2207
2208   For line by line descriptions of source files, one or more lines
2209   of the example can be displayed using the \ref cmdline "\\line", 
2210   \ref cmdskip "\\skip", \ref cmdskipline "\\skipline", and
2211   \ref cmduntil "\\until" commands. An internal pointer is used for these commands. The
2212   \c \\dontinclude command sets the pointer to the first line of the example.
2213
2214   \par Example:
2215   \include include.cpp
2216   Where the example file \c include_test.cpp looks as follows:
2217   \include include_test.cpp
2218   \htmlonly
2219   Click <a href="examples/include/html/example.html">here</a>
2220   for the corresponding HTML documentation that is generated by doxygen.
2221   \endhtmlonly
2222   \latexonly
2223   See \hyperlink{include_example}{Include example}
2224   for the corresponding \mbox{\LaTeX} documentation that is generated by doxygen.
2225   \endlatexonly
2226
2227   \sa sections \ref cmdline "\\line", \ref cmdskip "\\skip",
2228                \ref cmdskipline "\\skipline", \ref cmduntil "\\until", and
2229                \ref cmdinclude "\\include".
2230
2231 </p><hr>
2232 \section cmdinclude \\include[{lineno|doc}] <file-name>
2233
2234   \addindex \\include
2235   This command can be used to include a source file as a block of code.
2236   The command takes the name of an include file as an argument.
2237   Source files or directories can be specified using the
2238   \ref cfg_example_path "EXAMPLE_PATH"
2239   tag of doxygen's configuration file.
2240
2241   If \<file-name\> itself is not unique for the set of example files specified
2242   by the \ref cfg_example_path "EXAMPLE_PATH" tag, you can include part
2243   of the absolute path to disambiguate it.
2244
2245   Using the \c \\include command is equivalent to inserting the file into
2246   the documentation block and surrounding it
2247   with \ref cmdcode "\\code" and \ref cmdendcode "\\endcode" commands.
2248
2249   The main purpose of the \c \\include command is to avoid code
2250   duplication in case of example blocks that consist of multiple
2251   source and header files.
2252
2253   For a line by line description of a source files use the
2254   \ref cmddontinclude "\\dontinclude" command in combination with
2255   the \ref cmdline "\\line", \ref cmdskip "\\skip",
2256   \ref cmdskipline "\\skipline",
2257   and \ref cmduntil "\\until" commands.
2258
2259   Alternatively, the \ref cmdsnippet "\\snippet" command can be used to
2260   include only a fragment of a source file. For this to work the
2261   fragment has to be marked.
2262
2263   \note Doxygen's special commands do not work inside blocks of code.
2264   It is allowed to nest C-style comments inside a code block though.
2265
2266   You can add option `{lineno}` to enable line numbers for the included code if desired.
2267
2268   You can add option `{doc}` to treat the file as documentation rather than code.
2269
2270   \note Some that when using the `{doc}` option,
2271        commands like \ref cmdcond "\\cond" and \ref cmdif "\\if" don't work with
2272        this command due to the moment of parsing.
2273
2274   \note The included documentation should not have comment signs in it as they will appear
2275        in the documentation as well.
2276
2277   \sa sections \ref cmdexample "\\example", \ref cmddontinclude "\\dontinclude",
2278       \ref cmdverbatim "\\verbatim", \ref cmdincludedoc "\\includedoc", and
2279       \ref cmdsnippet "\\snippet".
2280
2281 <hr>
2282 \section cmdincludelineno \\includelineno <file-name>
2283
2284   \addindex \\includelineno
2285   This command is obsolete and is still supported for backward compatibility reasons,
2286   it works the same way as \ref cmdinclude "\\include{lineno}"
2287
2288   \sa sections \ref cmdinclude "\\include{lineno}".
2289
2290 <hr>
2291 \section cmdincludedoc \\includedoc <file-name>
2292
2293   \addindex \\includedoc
2294   This command is obsolete and is still supported for backward compatibility reasons,
2295   it works the same way as \ref cmdinclude "\\include{doc}"
2296
2297   \sa section \ref cmdinclude "\\include{doc}".
2298
2299 <hr>
2300 \section cmdline \\line ( pattern )
2301
2302   \addindex \\line
2303   This command searches line by line through the example that was last
2304   included using \ref cmdinclude "\\include" or
2305   \ref cmddontinclude "\\dontinclude" until it finds a non-blank
2306   line. If that line contains the specified pattern, it is written
2307   to the output.
2308
2309   The internal pointer that is used to keep track of the current line in
2310   the example, is set to the start of the line following the non-blank
2311   line that was found (or to the end of the example if no such line could
2312   be found).
2313
2314   See section \ref cmddontinclude "\\dontinclude" for an example.
2315
2316 <hr>
2317 \section cmdskip \\skip ( pattern )
2318
2319   \addindex \\skip
2320   This command searches line by line through the example that was last
2321   included using \ref cmdinclude "\\include" or
2322   \ref cmddontinclude "\\dontinclude" until it finds a line that contains
2323   the specified pattern.
2324
2325   The internal pointer that is used to keep track of the current line in
2326   the example, is set to the start of the line that contains the specified
2327   pattern (or to the end of the example if the pattern could not be found).
2328
2329   See section \ref cmddontinclude "\\dontinclude" for an example.
2330
2331 <hr>
2332 \section cmdskipline \\skipline ( pattern )
2333
2334   \addindex \\skipline
2335   This command searches line by line through the example that was last
2336   included using \ref cmdinclude "\\include" or
2337   \ref cmddontinclude "\\dontinclude" until it finds a line that contains
2338   the specified pattern. It then writes the line to the output.
2339
2340   The internal pointer that is used to keep track of the current line in
2341   the example, is set to the start of the line following the line that is
2342   written (or to the end of the example if the pattern could not be found).
2343
2344   \par Note:
2345     The command:
2346     \verbatim\skipline pattern\endverbatim
2347     is equivalent to:
2348 \verbatim
2349 \skip pattern
2350 \line pattern\endverbatim
2351
2352   See section \ref cmddontinclude "\\dontinclude" for an example.
2353
2354 <hr>
2355 \section cmdsnippet \\snippet[{lineno|doc}] <file-name> ( block_id )
2356
2357  \addindex \\snippet
2358  Where the \ref cmdinclude "\\include" command can be used to include
2359  a complete file as source code, this command can be used to quote only
2360  a fragment of a source file. In case `this` is used as <file-name> the
2361  current file is taken as file to take the snippet from.
2362
2363  For example, the putting the following command in the documentation,
2364  references a snippet in file \c example.cpp residing in a subdirectory 
2365  which should be pointed to by \ref cfg_example_path "EXAMPLE_PATH".
2366
2367 \verbatim
2368   \snippet snippets/example.cpp Adding a resource
2369 \endverbatim
2370
2371  The text following the file name is the unique identifier for the snippet. 
2372  This is used to delimit the quoted code in the relevant snippet file as 
2373  shown in the following example that corresponds to the above \c \\snippet 
2374  command:
2375
2376 \code
2377     QImage image(64, 64, QImage::Format_RGB32);
2378     image.fill(qRgb(255, 160, 128));
2379
2380 //! [Adding a resource]
2381     document->addResource(QTextDocument::ImageResource,
2382         QUrl("mydata://image.png"), QVariant(image));
2383 //! [Adding a resource]
2384     ...
2385 \endcode
2386
2387  Note that the lines containing the block markers will not be included,
2388  so the output will be:
2389
2390 \code
2391     document->addResource(QTextDocument::ImageResource,
2392         QUrl("mydata://image.png"), QVariant(image));
2393 \endcode
2394
2395  Note also that the [block_id] markers should appear exactly twice in the
2396  source file.
2397
2398  You can add option `{lineno}` to enable line numbers for the snippet if desired.
2399
2400  You can add option `{doc}` to treat the file as documentation rather than code.
2401
2402  \note Some that when using the `{doc}` option,
2403        commands like \ref cmdcond "\\cond" and \ref cmdif "\\if" don't work with
2404        this command due to the moment of parsing.
2405
2406  \note The included documentation should not have comment signs in it as they will appear
2407        in the documentation as well.
2408
2409  see section \ref cmddontinclude "\\dontinclude" for an alternative way
2410  to include fragments of a source file that does not require markers.
2411
2412 <hr>
2413 \section cmdsnippetlineno \\snippetlineno <file-name> ( block_id )
2414
2415   \addindex \\snippetlineno
2416   This command is obsolete and is still supported for backward compatibility reasons,
2417   it works the same way as \ref cmdsnippet "\\snippet{lineno}"
2418
2419   \sa sections \ref cmdsnippet "\\snippet{lineno}"
2420
2421 <hr>
2422 \section cmdsnippetdoc \\snippetdoc <file-name> ( block_id )
2423
2424   \addindex \\snippetdoc
2425   This command is obsolete and is still supported for backward compatibility reasons,
2426   it works the same way as \ref cmdsnippet "\\snippet{doc}"
2427
2428   \sa section \ref cmdsnippet "\\snippet{doc}" and \ref cmdinclude "\\include{doc}".
2429
2430 <hr>
2431 \section cmduntil \\until ( pattern )
2432
2433   \addindex \\until
2434   This command writes all lines of the example that was last
2435   included using \ref cmdinclude "\\include" or
2436   \ref cmddontinclude "\\dontinclude"  to the output, until it finds
2437   a line containing the specified pattern. The line containing the pattern
2438   will be written as well.
2439
2440   The internal pointer that is used to keep track of the current line in
2441   the example, is set to the start of the line following last written
2442   line (or to the end of the example if the pattern could not be found).
2443
2444   See section \ref cmddontinclude "\\dontinclude" for an example.
2445
2446 <hr>
2447 \section cmdverbinclude \\verbinclude <file-name>
2448
2449   \addindex \\verbinclude
2450   This command includes the file \<file-name\> verbatim in the documentation.
2451   The command is equivalent to pasting the file in the documentation and
2452   placing \ref cmdverbatim "\\verbatim" and \ref cmdendverbatim "\\endverbatim"
2453   commands around it.
2454
2455   Files or directories that doxygen should look for can be specified using the
2456   \ref cfg_example_path "EXAMPLE_PATH" tag of doxygen's configuration file.
2457
2458 <hr>
2459 \section cmdhtmlinclude \\htmlinclude ["[block]"] <file-name>
2460
2461   \addindex \\htmlinclude
2462   This command includes the file \<file-name\> as is in the HTML documentation.
2463   The command is equivalent to pasting the file in the documentation and
2464   placing \ref cmdhtmlonly "\\htmlonly" and \ref cmdendhtmlonly "\\endhtmlonly"
2465   commands around it.
2466
2467   Normally the contents of the file indicated by \ref cmdhtmlinclude "\\htmlinclude"
2468   is inserted as-is. When you
2469   want to insert a HTML fragment that has block scope like a table or list
2470   which should appear outside \<p\>..\</p\>, this can lead to invalid HTML.
2471   You can use \\htmlinclude[block] to make doxygen
2472   end the current paragraph and restart after the file is included.
2473
2474   Files or directories that doxygen should look for can be specified using the
2475   \ref cfg_example_path "EXAMPLE_PATH" tag of doxygen's configuration file.
2476
2477   \sa section \ref cmdhtmlonly "\\htmlonly". 
2478 <hr>
2479
2480 \section cmdlatexinclude \\latexinclude <file-name>
2481
2482   \addindex \\latexinclude
2483   This command includes the file \<file-name\> as is in the \LaTeX documentation.
2484   The command is equivalent to pasting the file in the documentation and
2485   placing \ref cmdlatexonly "\\latexonly" and \ref cmdendlatexonly "\\endlatexonly"
2486   commands around it.
2487
2488   Files or directories that doxygen should look for can be specified using the
2489   \ref cfg_example_path "EXAMPLE_PATH" tag of doxygen's configuration file.
2490
2491 <hr>
2492
2493 \htmlonly</p><center><p>\endhtmlonly
2494 <h2>
2495 \htmlonly --- \endhtmlonly
2496 Commands for visual enhancements
2497 \htmlonly --- \endhtmlonly
2498 </h2>
2499 \htmlonly</p></center><p>\endhtmlonly
2500
2501 \section cmda \\a <word>
2502
2503   \addindex \\a
2504   Displays the argument \<word\> in italics.
2505   Use this command to emphasize words.
2506   Use this command to refer to member arguments in the running text.
2507
2508   \par Example:
2509   \verbatim
2510   ... the \a x and \a y coordinates are used to ...
2511   \endverbatim
2512   This will result in the following text:<br><br>
2513   ... the \a x and \a y coordinates are used to ...
2514
2515   Equivalent to \ref cmde "\\e" and \ref cmdem "\\em".
2516   To emphasize multiple words use \<em\>multiple words\</em\>.
2517
2518 <hr>
2519 \section cmdarg \\arg { item-description }
2520
2521   \addindex \\arg
2522   This command has one argument that continues until the first
2523   blank line or until another \c \\arg is encountered.
2524   The command can be used to generate a simple, not nested list of
2525   arguments.
2526   Each argument should start with a \c \\arg command.
2527
2528   \par Example:
2529   Typing:
2530   \verbatim
2531   \arg \c AlignLeft left alignment.
2532   \arg \c AlignCenter center alignment.
2533   \arg \c AlignRight right alignment
2534
2535   No other types of alignment are supported.
2536   \endverbatim
2537   will result in the following text:<br><br>
2538   <ul>
2539   <li> \c AlignLeft left alignment.
2540   <li> \c AlignCenter center alignment.
2541   <li> \c AlignRight right alignment
2542   </ul><br>
2543   No other types of alignment are supported.
2544
2545   \par Note:
2546   For nested lists, HTML commands should be used.
2547
2548   Equivalent to \ref cmdli "\\li"
2549
2550
2551 <hr>
2552 \section cmdb \\b <word>
2553
2554   \addindex \\b
2555   Displays the argument \<word\> using a bold font.
2556   Equivalent to \<b\>word\</b\>.
2557   To put multiple words in bold use \<b\>multiple words\</b\>.
2558
2559 <hr>
2560 \section cmdc \\c <word>
2561
2562   \addindex \\c
2563   Displays the argument \<word\> using a typewriter font.
2564   Use this to refer to a word of code.
2565   Equivalent to \<tt\>word\</tt\>.
2566
2567   \par Example:
2568   Typing:
2569   \verbatim
2570      ... This function returns \c void and not \c int ...
2571   \endverbatim
2572   will result in the following text:<br><br>
2573      ... This function returns \c void and not \c int ...
2574
2575   Equivalent to \ref cmdp "\\p"
2576   To have multiple words in typewriter font use \<tt\>multiple words\</tt\>.
2577
2578 <hr>
2579 \section cmdcode \\code [ '{'<word>'}']
2580
2581   \addindex \\code
2582   Starts a block of code. A code block is treated differently
2583   from ordinary text. It is interpreted as source code. The names of 
2584   classes and members and other documented entities are automatically 
2585   replaced by links to the documentation.
2586
2587   By default the language that is assumed for syntax highlighting is based
2588   on the location where the \c \\code block was found. If this part of
2589   a Python file for instance, the syntax highlight will be done according
2590   to the Python syntax. 
2591
2592   If it unclear from the context which language is meant (for instance the
2593   comment is in a <code>.txt</code> or <code>.markdown</code> file) then you can also explicitly
2594   indicate the language, by putting the file extension typically
2595   that doxygen associated with the language in curly brackets after the
2596   code block. Here is an example:
2597
2598 \verbatim
2599   \code{.py}
2600   class Python:
2601      pass
2602   \endcode
2603
2604   \code{.cpp}
2605   class Cpp {};
2606   \endcode
2607 \endverbatim
2608
2609   If the contents of the code block are in a language that doxygen cannot parse, doxygen
2610   will just show the output as-is. You can make this explicit using .unparsed, or by
2611   giving some other extension that doxygen doesn't support, e.g.
2612
2613 \verbatim
2614   \code{.unparsed}
2615   Show this as-is please
2616   \endcode
2617
2618   \code{.sh}
2619   echo "This is a shell script"
2620   \endcode
2621 \endverbatim
2622
2623   \sa section \ref cmdendcode "\\endcode" and section \ref cmdverbatim "\\verbatim".
2624
2625 <hr>
2626 \section cmdcopydoc \\copydoc <link-object>
2627
2628   \addindex \\copydoc
2629   Copies a documentation block from the object specified by \<link-object\>
2630   and pastes it at the location of the command. This command can be useful
2631   to avoid cases where a documentation block would otherwise have to be
2632   duplicated or it can be used to extend the documentation of an inherited
2633   member.
2634
2635   The link object can point to a member (of a class, file or group),
2636   a class, a namespace, a group, a page, or a file (checked in that order).
2637   Note that if the object pointed to is a member (function, variable,
2638   typedef, etc), the compound (class, file, or group) containing it
2639   should also be documented for the copying to work.
2640
2641   To copy the documentation for a member of a
2642   class one can, for instance, put the following in the documentation:
2643
2644 \verbatim
2645   /*! @copydoc MyClass::myfunction()
2646    *  More documentation.
2647    */
2648 \endverbatim
2649
2650   if the member is overloaded, you should specify the argument types
2651   explicitly (without spaces!), like in the following:
2652
2653 \verbatim
2654   //! @copydoc MyClass::myfunction(type1,type2)
2655 \endverbatim
2656
2657   Qualified names are only needed if the context in which the documentation
2658   block is found requires them.
2659
2660   The \c \\copydoc command can be used recursively, but cycles in the \c \\copydoc
2661   relation will be broken and flagged as an error.
2662
2663   Note that <code>\\copydoc foo()</code> is roughly equivalent to doing:
2664 \verbatim
2665   \brief \copybrief foo()
2666   \details \copydetails foo()
2667 \endverbatim
2668   See \ref cmdcopybrief "\\copybrief" and
2669   \ref cmdcopydetails "\\copydetails" for copying only the brief or
2670   detailed part of the comment block.
2671
2672 <hr>
2673 \section cmdcopybrief \\copybrief <link-object>
2674
2675   \addindex \\copybrief
2676 Works in a similar way as \ref cmdcopydoc "\\copydoc" but will
2677 only copy the brief description, not the detailed documentation.
2678
2679 <hr>
2680 \section cmdcopydetails \\copydetails <link-object>
2681
2682   \addindex \\copydetails
2683 Works in a similar way as \ref cmdcopydoc "\\copydoc" but will
2684 only copy the detailed documentation, not the brief description.
2685
2686 <hr>
2687 \section cmddocbookonly \\docbookonly
2688
2689   \addindex \\docbookonly
2690   Starts a block of text that will be verbatim included in the
2691   generated DocBook documentation only. The block ends with a
2692   \ref cmdenddocbookonly "\\enddocbookonly" command.
2693
2694   \sa section \ref cmdmanonly "\\manonly", 
2695               \ref cmdlatexonly "\\latexonly", 
2696               \ref cmdrtfonly "\\rtfonly", 
2697               \ref cmdxmlonly "\\xmlonly", and 
2698               \ref cmdhtmlonly "\\htmlonly".
2699
2700 <hr>
2701 \section cmddot \\dot ["caption"] [<sizeindication>=<size>]
2702
2703   \addindex \\dot
2704   Starts a text fragment which should contain a valid description of a
2705   dot graph. The text fragment ends with \ref cmdenddot "\\enddot".
2706   Doxygen will pass the text on to dot and include the resulting
2707   image (and image map) into the output.
2708
2709   The first argument is optional and can be used to specify the caption
2710   that is displayed below the image. This argument has to be specified
2711   between quotes even if it does not contain any spaces. The quotes are
2712   stripped before the caption is displayed.
2713
2714   The second argument is also optional and can be used to specify the
2715   width or height of the image.
2716   For a description of the possibilities see the paragraph
2717   \ref image_sizeindicator "Size indication" with the
2718   \ref cmdimage "\\image" command.
2719
2720   The nodes of a graph can be made clickable by using the URL attribute.
2721   By using the command \ref cmdref "\\ref" inside the URL value you can conveniently
2722   link to an item inside doxygen. Here is an example:
2723 \code
2724 /*! class B */
2725 class B {};
2726
2727 /*! class C */
2728 class C {};
2729
2730 /*! \mainpage
2731  *
2732  *  Class relations expressed via an inline dot graph:
2733  *  \dot
2734  *  digraph example {
2735  *      node [shape=record, fontname=Helvetica, fontsize=10];
2736  *      b [ label="class B" URL="\ref B"];
2737  *      c [ label="class C" URL="\ref C"];
2738  *      b -> c [ arrowhead="open", style="dashed" ];
2739  *  }
2740  *  \enddot
2741  *  Note that the classes in the above graph are clickable
2742  *  (in the HTML output).
2743  */
2744 \endcode
2745
2746 <hr>
2747 \section cmdemoji \\emoji "name"
2748
2749 This command will produce an emoji character given its name.
2750
2751 The supported names are the ones also supported by GitHub and listed here
2752 https://gist.github.com/rxaviers/7360908
2753
2754 You can use the name with or without colons, i.e.
2755 `\emoji smile` is the same as writing `\emoji :smile:`.
2756 When an emoji is not supported the name with by places in the
2757 text with in between colons, i.e. `\emoji unsupported` will produce
2758 `:unsupported:` in the output. Doxygen will also give a warning message.
2759
2760 See also the \ref emojisup "emoji support page" for details.
2761
2762 <hr>
2763 \section cmdmsc \\msc ["caption"] [<sizeindication>=<size>]
2764
2765   \addindex \\msc
2766   Starts a text fragment which should contain a valid description of a
2767   message sequence chart. See http://www.mcternan.me.uk/mscgen/ for examples.
2768   The text fragment ends with \ref cmdendmsc "\\endmsc".
2769
2770   The first argument is optional and can be used to specify the caption
2771   that is displayed below the image. This argument has to be specified
2772   between quotes even if it does not contain any spaces. The quotes are
2773   stripped before the caption is displayed.
2774
2775   The second argument is also optional and can be used to specify the
2776   width or height of the image. 
2777   For a description of the possibilities see the paragraph
2778   \ref image_sizeindicator "Size indication" with the
2779   \ref cmdimage "\\image" command.
2780
2781   \note The text fragment should only include the part of the message
2782   sequence chart that is
2783   within the <code>msc {...}</code> block.
2784   \note You need to install the <code>mscgen</code> tool, if you want to use this
2785   command.
2786
2787 Here is an example of the use of the \c \\msc command.
2788 \code
2789 /** Sender class. Can be used to send a command to the server.
2790  *  The receiver will acknowledge the command by calling Ack().
2791  *  \msc
2792  *    Sender,Receiver;
2793  *    Sender->Receiver [label="Command()", URL="\ref Receiver::Command()"];
2794  *    Sender<-Receiver [label="Ack()", URL="\ref Ack()", ID="1"];
2795  *  \endmsc
2796  */
2797 class Sender
2798 {
2799   public:
2800     /** Acknowledgment from server */
2801     void Ack(bool ok);
2802 };
2803
2804 /** Receiver class. Can be used to receive and execute commands.
2805  *  After execution of a command, the receiver will send an acknowledgment
2806  *  \msc
2807  *    Receiver,Sender;
2808  *    Receiver<-Sender [label="Command()", URL="\ref Command()"];
2809  *    Receiver->Sender [label="Ack()", URL="\ref Sender::Ack()", ID="1"];
2810  *  \endmsc
2811  */
2812 class Receiver
2813 {
2814   public:
2815     /** Executable a command on the server */
2816     void Command(int commandId);
2817 };
2818
2819 \endcode
2820
2821   \sa section \ref cmdmscfile "\\mscfile".
2822
2823 <hr>
2824 \section cmdstartuml \\startuml [{file}] ["caption"] [<sizeindication>=<size>]
2825
2826   \addindex \\startuml
2827   Starts a text fragment which should contain a valid description of a
2828   PlantUML diagram. See http://plantuml.com/ for examples.
2829   The text fragment ends with \ref cmdenduml "\\enduml".
2830   \note You need to install Java and the PlantUML's jar file,
2831   if you want to use this command. The location of the jar file should be specified
2832   using \ref cfg_plantuml_jar_path "PLANTUML_JAR_PATH".
2833
2834   The first argument is optional and is for compatibility with running PlantUML as a preprocessing
2835   step before running doxygen, you can also add the name of the image file after \c \\startuml
2836   and inside curly brackets, i.e.
2837   \verbatim
2838   @startuml{myimage.png} "Image Caption" width=5cm
2839   Alice -> Bob : Hello
2840   @enduml
2841   \endverbatim
2842   When the name of the image is specified, doxygen will generate an image with that name.
2843   Without the name doxygen will choose a name automatically.
2844
2845   The second argument is optional and can be used to specify the caption
2846   that is displayed below the image. This argument has to be specified
2847   between quotes even if it does not contain any spaces. The quotes are
2848   stripped before the caption is displayed.
2849
2850   The third argument is also optional and can be used to specify the
2851   width or height of the image.
2852   For a description of the possibilities see the paragraph
2853   \ref image_sizeindicator "Size indication" with the
2854   \ref cmdimage "\\image" command.
2855
2856 Here is an example of the use of the \c \\startuml command.
2857 \code
2858 /** Sender class. Can be used to send a command to the server.
2859  *  The receiver will acknowledge the command by calling Ack().
2860  *  \startuml
2861  *    Sender->Receiver  : Command()
2862  *    Sender<--Receiver : Ack()
2863  *  \enduml
2864  */
2865 class Sender
2866 {
2867   public:
2868     /** Acknowledgment from server */
2869     void Ack(bool ok);
2870 };
2871
2872 /** Receiver class. Can be used to receive and execute commands.
2873  *  After execution of a command, the receiver will send an acknowledgment
2874  *  \startuml
2875  *    Receiver<-Sender  : Command()
2876  *    Receiver-->Sender : Ack()
2877  *  \enduml
2878  */
2879 class Receiver
2880 {
2881   public:
2882     /** Executable a command on the server */
2883     void Command(int commandId);
2884 };
2885 \endcode
2886
2887 <hr>
2888 \section cmddotfile \\dotfile <file> ["caption"] [<sizeindication>=<size>]
2889
2890   \addindex \\dotfile
2891   Inserts an image generated by dot from \<file\> into the documentation.
2892
2893   The first argument specifies the file name of the image.
2894   doxygen will look for files in the paths (or files) that you specified
2895   after the \ref cfg_dotfile_dirs "DOTFILE_DIRS" tag.
2896   If the dot file is found it will be used as an input file to the dot tool.
2897   The resulting image will be put into the correct output directory.
2898   If the dot file name contains spaces you'll have to put quotes ("...") around it.
2899
2900   The second argument is optional and can be used to specify the caption
2901   that is displayed below the image. This argument has to be specified
2902   between quotes even if it does not contain any spaces. The quotes are
2903   stripped before the caption is displayed.
2904
2905   The third argument is also optional and can be used to specify the
2906   width or height of the image.
2907   For a description of the possibilities see the paragraph
2908   \ref image_sizeindicator "Size indication" with the
2909   \ref cmdimage "\\image" command.
2910
2911   \sa section \ref cmddot "\\dot".
2912
2913 <hr>
2914 \section cmdmscfile \\mscfile <file> ["caption"] [<sizeindication>=<size>]
2915
2916   \addindex \\mscfile
2917   Inserts an image generated by mscgen from \<file\> into the documentation.
2918   See http://www.mcternan.me.uk/mscgen/ for examples.
2919
2920   The first argument specifies the file name of the image.
2921   doxygen will look for files in the paths (or files) that you specified
2922   after the \ref cfg_mscfile_dirs "MSCFILE_DIRS" tag.
2923   If the msc file is found it will be used as an input file to the mscgen tool.
2924   The resulting image will be put into the correct output directory.
2925   If the msc file name contains spaces you'll have to put quotes ("...") around it.
2926
2927   The second argument is optional and can be used to specify the caption
2928   that is displayed below the image. This argument has to be specified
2929   between quotes even if it does not contain any spaces. The quotes are
2930   stripped before the caption is displayed.
2931
2932   The third argument is also optional and can be used to specify the
2933   width or height of the image.
2934   For a description of the possibilities see the paragraph
2935   \ref image_sizeindicator "Size indication" with the
2936   \ref cmdimage "\\image" command.
2937
2938   \sa section \ref cmdmsc "\\msc".
2939
2940 <hr>
2941 \section cmddiafile \\diafile <file> ["caption"] [<sizeindication>=<size>]
2942
2943   \addindex \\diafile
2944   Inserts an image made in dia from \<file\> into the documentation.
2945
2946   The first argument specifies the file name of the image.
2947   doxygen will look for files in the paths (or files) that you specified
2948   after the \ref cfg_diafile_dirs "DIAFILE_DIRS" tag.
2949   If the dia file is found it will be used as an input file dia.
2950   The resulting image will be put into the correct output directory.
2951   If the dia file name contains spaces you'll have to put quotes ("...") around it.
2952
2953   The second argument is optional and can be used to specify the caption
2954   that is displayed below the image. This argument has to be specified
2955   between quotes even if it does not contain any spaces. The quotes are
2956   stripped before the caption is displayed.
2957
2958   The third argument is also optional and can be used to specify the
2959   width or height of the image.
2960   For a description of the possibilities see the paragraph
2961   \ref image_sizeindicator "Size indication" with the
2962   \ref cmdimage "\\image" command.
2963
2964 <hr>
2965 \section cmde \\e <word>
2966
2967   \addindex \\e
2968   Displays the argument \<word\> in italics.
2969   Use this command to emphasize words.
2970
2971   \par Example:
2972   Typing:
2973   \verbatim
2974   ... this is a \e really good example ...
2975   \endverbatim
2976   will result in the following text:<br><br>
2977   ... this is a \e really good example ...
2978
2979   Equivalent to \ref cmda "\\a" and \ref cmdem "\\em".
2980   To emphasize multiple words use \<em\>multiple words\</em\>.
2981
2982 <hr>
2983 \section cmdem \\em <word>
2984
2985   \addindex \\em
2986   Displays the argument \<word\> in italics.
2987   Use this command to emphasize words.
2988
2989   \par Example:
2990   Typing:
2991   \verbatim
2992   ... this is a \em really good example ...
2993   \endverbatim
2994   will result in the following text:<br><br>
2995   ... this is a \em really good example ...
2996
2997   Equivalent to \ref cmda "\\a" and \ref cmde "\\e".
2998   To emphasize multiple words use \<em\>multiple words\</em\>.
2999
3000 <hr>
3001 \section cmdendcode \\endcode
3002
3003   \addindex \\endcode
3004   Ends a block of code.
3005   \sa section \ref cmdcode "\\code"
3006
3007 <hr>
3008 \section cmdenddocbookonly \\enddocbookonly
3009
3010   \addindex \\enddocbookonly
3011   Ends a block of text that was started with a \ref cmddocbookonly "\\docbookonly" command.
3012
3013   \sa section \ref cmddocbookonly "\\docbookonly".
3014
3015 <hr>
3016 \section cmdenddot \\enddot
3017
3018   \addindex \\enddot
3019   Ends a block that was started with \ref cmddot "\\dot".
3020
3021 <hr>
3022 \section cmdendmsc \\endmsc
3023
3024   \addindex \\endmsc
3025   Ends a block that was started with \ref cmdmsc "\\msc".
3026
3027 <hr>
3028 \section cmdenduml \\enduml
3029
3030   \addindex \\enduml
3031   Ends a block that was started with \ref cmdstartuml "\\startuml".
3032
3033 <hr>
3034 \section cmdendhtmlonly \\endhtmlonly
3035
3036   \addindex \\endhtmlonly
3037   Ends a block of text that was started with a \ref cmdhtmlonly "\\htmlonly" command.
3038
3039   \sa section \ref cmdhtmlonly "\\htmlonly".
3040
3041 <hr>
3042 \section cmdendlatexonly \\endlatexonly
3043
3044   \addindex \\endlatexonly
3045   Ends a block of text that was started with a \ref cmdlatexonly "\\latexonly" command.
3046
3047   \sa section \ref cmdlatexonly "\\latexonly".
3048
3049 <hr>
3050 \section cmdendmanonly \\endmanonly
3051
3052   \addindex \\endmanonly
3053   Ends a block of text that was started with a \ref cmdmanonly "\\manonly" command.
3054
3055   \sa section \ref cmdmanonly "\\manonly".
3056
3057 <hr>
3058 \section cmdendrtfonly \\endrtfonly
3059
3060   \addindex \\endrtfonly
3061   Ends a block of text that was started with a \ref cmdrtfonly "\\rtfonly" command.
3062
3063   \sa section \ref cmdrtfonly "\\rtfonly".
3064
3065
3066 <hr>
3067 \section cmdendverbatim \\endverbatim
3068
3069   \addindex \\endverbatim
3070   Ends a block of text that was started with a \ref cmdverbatim "\\verbatim" command.
3071
3072   \sa section \ref cmdverbatim "\\verbatim".
3073
3074 <hr>
3075 \section cmdendxmlonly \\endxmlonly
3076
3077   \addindex \\endxmlonly
3078   Ends a block of text that was started with a \ref cmdxmlonly "\\xmlonly" command.
3079
3080   \sa section \ref cmdxmlonly "\\xmlonly".
3081
3082 <hr>
3083 \section cmdfdollar \\f$
3084
3085   \addindex \\f\$
3086
3087   Marks the start and end of an in-text formula.
3088   \sa section \ref formulas "formulas" for an example.
3089
3090 <hr>
3091 \section cmdfbropen \\f[
3092
3093   \addindex \\f[
3094
3095   Marks the start of a long formula that is displayed
3096   centered on a separate line.
3097   \sa section \ref cmdfbrclose "\\f]" and section \ref formulas "formulas".
3098
3099 <hr>
3100 \section cmdfbrclose \\f]
3101
3102   \addindex \\f]
3103
3104   Marks the end of a long formula that is displayed
3105   centered on a separate line.
3106   \sa section \ref cmdfbropen "\\f[" and section \ref formulas "formulas".
3107
3108 <hr>
3109 \section cmdfcurlyopen \\f{environment}{
3110
3111   \addindex \\f{
3112
3113   Marks the start of a formula that is in a specific environment.
3114   \note The second \c { is optional and is only to help editors (such as \c Vim) to
3115   do proper syntax highlighting by making the number of opening and closing braces
3116   the same.
3117   \sa section \ref cmdfcurlyclose "\\f}" and section \ref formulas "formulas".
3118
3119 <hr>
3120 \section cmdfcurlyclose \\f}
3121
3122   \addindex \\f}
3123
3124   Marks the end of a formula that is in a specific environment.
3125   \sa section \ref cmdfcurlyopen "\\f{" and section \ref formulas "formulas".
3126
3127 <hr>
3128 \section cmdhtmlonly \\htmlonly ["[block]"]
3129
3130   \addindex \\htmlonly
3131   Starts a block of text that will be verbatim included in the
3132   generated HTML documentation only. The block ends with a
3133   \ref cmdendhtmlonly "\\endhtmlonly" command.
3134
3135   This command can be used to include HTML code that is too complex
3136   for doxygen (i.e. applets, java-scripts, and HTML tags that
3137   require specific attributes).
3138
3139   Normally the contents between \ref cmdhtmlonly "\\htmlonly" and
3140   \ref cmdendhtmlonly "\\endhtmlonly" is inserted as-is. When you
3141   want to insert a HTML fragment that has block scope like a table or list
3142   which should appear outside \<p\>..\</p\>, this can lead to invalid HTML.
3143   You can use \\htmlonly[block] to make doxygen
3144   end the current paragraph and restart it after \\endhtmlonly.
3145
3146   \note environment variables (like \$(HOME) ) are resolved inside a
3147   HTML-only block.
3148
3149   \sa section \ref cmdmanonly "\\manonly", 
3150               \ref cmdlatexonly "\\latexonly", 
3151               \ref cmdrtfonly "\\rtfonly", 
3152               \ref cmdxmlonly "\\xmlonly",
3153               \ref cmddocbookonly "\\docbookonly", and
3154               \ref cmdhtmlinclude "\\htmlinclude".
3155
3156 <hr>
3157 \section cmdimage \\image['{'[option]'}'] <format> <file> ["caption"] [<sizeindication>=<size>]
3158
3159   \addindex \\image
3160   Inserts an image into the documentation. This command is format
3161   specific, so if you want to insert an image for more than one
3162   format you'll have to repeat this command for each format.
3163
3164   The first argument specifies the output format in which the image should
3165   be embedded. Currently, the following values are supported:
3166   \c html, \c latex, \c docbook and \c rtf.
3167
3168   The second argument specifies the file name of the image.
3169   doxygen will look for files in the paths (or files) that you specified
3170   after the \ref cfg_image_path "IMAGE_PATH" tag.
3171   If the image is found it will be copied to the correct output directory.
3172   If the image name contains spaces you'll have to put quotes ("...") around
3173   the name. You can also specify an absolute URL instead of a file name, but then
3174   doxygen does not copy the image nor check its existence.
3175
3176   The third argument is optional and can be used to specify the caption
3177   that is displayed below the image. This argument has to be specified
3178   on a single line and between quotes even if it does not contain any
3179   spaces. The quotes are stripped before the caption is displayed.
3180
3181   The fourth argument is also optional and can be used to specify the
3182   width or height of the image. This can be useful for \LaTeX or DocBook output
3183   (i.e. format=<code>latex</code> or format=<code>docbook</code>).
3184   \anchor image_sizeindicator \par Size indication
3185   The \c sizeindication can specify the width or height to be used (or a combination).
3186   The size specifier in \LaTeX (for example `10cm` or
3187   `4in` or a symbolic width like `\\textwidth`).
3188
3189   Currently only the option `inline` is supported. In case the option `inline` is
3190   specified the image is placed "in the line", when a caption s present it is shown 
3191   in HTML as tooltip (ignored for the other formats).
3192
3193   Here is example of a comment block:
3194
3195 \verbatim
3196   /*! Here is a snapshot of my new application:
3197    *  \image html application.jpg
3198    *  \image latex application.eps "My application" width=10cm
3199    */
3200 \endverbatim
3201
3202   And this is an example of how the relevant part of the configuration file
3203   may look:
3204
3205 \verbatim
3206   IMAGE_PATH     = my_image_dir
3207 \endverbatim
3208
3209   \warning The image format for HTML is limited to what your
3210            browser supports. For \LaTeX, the image format
3211            must be Encapsulated PostScript (eps).
3212            <br><br>
3213            Doxygen does not check if the image is in the correct format.
3214            So \e you have to make sure this is the case!
3215
3216 <hr>
3217 \section cmdlatexonly \\latexonly
3218
3219   \addindex \\latexonly
3220   Starts a block of text that will be verbatim included in the
3221   generated \LaTeX documentation only. The block ends with a
3222   \ref cmdendlatexonly "\\endlatexonly" command.
3223
3224   This command can be used to include \LaTeX code that is too
3225   complex for doxygen (i.e. images, formulas, special characters). You can
3226   use the \ref cmdhtmlonly "\\htmlonly" and \ref cmdendhtmlonly "\\endhtmlonly"
3227   pair to provide a proper HTML alternative.
3228
3229   \b Note:
3230     environment variables (like \$(HOME) ) are resolved inside a
3231     \LaTeX-only block.
3232
3233   \sa sections \ref cmdrtfonly "\\rtfonly",
3234                \ref cmdxmlonly "\\xmlonly",
3235                \ref cmdmanonly "\\manonly",
3236                \ref cmdhtmlonly "\\htmlonly", and
3237                \ref cmdhtmlonly "\\docbookonly".
3238
3239 <hr>
3240 \section cmdmanonly \\manonly
3241
3242   \addindex \\manonly
3243   Starts a block of text that will be verbatim included in the
3244   generated MAN documentation only. The block ends with a
3245   \ref cmdendmanonly "\\endmanonly" command.
3246
3247   This command can be used to include groff code directly into
3248   MAN pages. You can use the \ref cmdhtmlonly "\\htmlonly" and
3249   \ref cmdendhtmlonly "\\endhtmlonly" and
3250   \ref cmdlatexonly "\\latexonly" and
3251   \ref cmdendlatexonly "\\endlatexonly" pairs to provide proper
3252   HTML and \LaTeX alternatives.
3253
3254   \sa sections \ref cmdhtmlonly "\\htmlonly",
3255                \ref cmdxmlonly "\\xmlonly",
3256                \ref cmdrtfonly "\\rtfonly",
3257                \ref cmdlatexonly "\\latexonly", and
3258                \ref cmddocbookonly "\\docbookonly".
3259
3260 <hr>
3261 \section cmdli \\li { item-description }
3262
3263   \addindex \\li
3264   This command has one argument that continues until the first
3265   blank line or until another \c \\li is encountered.
3266   The command can be used to generate a simple, not nested list of
3267   arguments.
3268   Each argument should start with a \c \\li command.
3269
3270   \par Example:
3271   Typing:
3272   \verbatim
3273   \li \c AlignLeft left alignment.
3274   \li \c AlignCenter center alignment.
3275   \li \c AlignRight right alignment
3276
3277   No other types of alignment are supported.
3278   \endverbatim
3279   will result in the following text:<br><br>
3280   <ul>
3281   <li> \c AlignLeft left alignment.
3282   <li> \c AlignCenter center alignment.
3283   <li> \c AlignRight right alignment
3284   </ul><br>
3285   No other types of alignment are supported.
3286
3287   \par Note:
3288   For nested lists, HTML commands should be used.
3289
3290   Equivalent to \ref cmdarg "\\arg"
3291
3292 <hr>
3293 \section cmdn \\n
3294
3295   \addindex \\n
3296   Forces a new line. Equivalent to \<br\> and inspired by
3297   the \c printf function.
3298
3299 <hr>
3300 \section cmdp \\p <word>
3301
3302   \addindex \\p
3303   Displays the parameter \<word\> using a typewriter font.
3304   You can use this command to refer to member function parameters in
3305   the running text.
3306
3307   \par Example:
3308   \verbatim
3309   ... the \p x and \p y coordinates are used to ...
3310   \endverbatim
3311   This will result in the following text:<br><br>
3312   ... the \p x and \p y coordinates are used to ...
3313
3314   Equivalent to \ref cmdc "\\c"
3315   To have multiple words in typewriter font use \<tt\>multiple words\</tt\>.
3316
3317 <hr>
3318 \section cmdrtfonly \\rtfonly
3319
3320   \addindex \\rtfonly
3321   Starts a block of text that will be verbatim included in the
3322   generated RTF documentation only. The block ends with a
3323   \ref cmdendrtfonly "\\endrtfonly" command.
3324
3325   This command can be used to include RTF code that is too complex
3326   for doxygen.
3327
3328   \b Note:
3329     environment variables (like \$(HOME) ) are resolved inside a
3330     RTF-only block.
3331
3332   \sa sections \ref cmdmanonly "\\manonly",
3333                \ref cmdxmlonly "\\xmlonly",
3334                \ref cmdlatexonly "\\latexonly",
3335                \ref cmdhtmlonly "\\htmlonly", and
3336                \ref cmddocbookonly "\\docbookonly".
3337
3338 <hr>
3339 \section cmdverbatim \\verbatim
3340
3341   \addindex \\verbatim
3342   Starts a block of text that will be verbatim included in
3343   the documentation. The block should end with a
3344   \ref cmdendverbatim "\\endverbatim" command.
3345   All commands are disabled in a verbatim block.
3346
3347   \warning Make sure you include a \ref cmdendverbatim "\\endverbatim" command for each
3348   \c \\verbatim command or the parser will get confused!
3349
3350   \sa sections \ref cmdcode "\\code",
3351                \ref cmdendverbatim "\\endverbatim" and
3352                \ref cmdverbinclude "\\verbinclude".
3353
3354 <hr>
3355 \section cmdxmlonly \\xmlonly
3356
3357   \addindex \\xmlonly
3358   Starts a block of text that will be verbatim included in the
3359   generated XML output only. The block ends with a
3360   \ref cmdendxmlonly "\\endxmlonly" command.
3361
3362   This command can be used to include custom XML tags.
3363
3364   \sa sections \ref cmdmanonly "\\manonly",
3365                \ref cmdrtfonly "\\rtfonly",
3366                \ref cmdlatexonly "\\latexonly",
3367                \ref cmdhtmlonly "\\htmlonly", and
3368                \ref cmddocbookonly "\\docbookonly".
3369
3370 <hr>
3371 \section cmdbackslash \\\\
3372
3373   \addindex \\\\
3374   This command writes a backslash character (\c \\) to the
3375   output. The backslash has to be escaped in some
3376   cases because doxygen uses it to detect commands.
3377
3378 <hr>
3379 \section cmdat \\\@
3380
3381   \addindex \\\@
3382   This command writes an at-sign (\c \@) to the output.
3383   The at-sign has to be escaped in some cases
3384   because doxygen uses it to detect Javadoc commands.
3385
3386 <hr>
3387 \section cmdtilde \\~[LanguageId]
3388   \addindex \\~
3389   This command enables/disables a language specific filter. This can be
3390   used to put documentation for different language into one comment block
3391   and use the \ref cfg_output_language "OUTPUT_LANGUAGE" tag to filter out only a specific language.
3392   Use \c \\~language_id to enable output for a specific language only and
3393   \c \\~ to enable output for all languages (this is also the default mode).
3394
3395   Example:
3396 \verbatim
3397 /*! \~english This is English \~dutch Dit is Nederlands \~german Dies ist
3398     Deutsch. \~ output for all languages.
3399  */
3400 \endverbatim
3401
3402
3403 <hr>
3404 \section cmdamp \\\&
3405
3406   \addindex \\\&
3407   This command writes the \c \& character to the output.
3408   This character has to be escaped because it has a special meaning in HTML.
3409
3410 <hr>
3411 \section cmddollar \\\$
3412
3413   \addindex \\\$
3414   This command writes the \c \$ character to the output.
3415   This character has to be escaped in some cases, because it is used to expand
3416   environment variables.
3417
3418 <hr>
3419 \section cmdhash \\\#
3420
3421   \addindex \\\#
3422   This command writes the \c \# character to the output. This
3423   character has to be escaped in some cases, because it is used to refer
3424   to documented entities.
3425
3426 <hr>
3427 \section cmdlt \\\<
3428
3429   \addindex \\\<
3430   This command writes the \c \< character to the output.
3431   This character has to be escaped because it has a special meaning in HTML.
3432
3433 <hr>
3434 \section cmdgt \\\>
3435
3436   \addindex \\\>
3437   This command writes the \c \> character to the output. This
3438   character has to be escaped because it has a special meaning in HTML.
3439
3440 <hr>
3441 \section cmdperc \\\%
3442
3443   \addindex \\\%
3444   This command writes the \c \% character to the output. This
3445   character has to be escaped in some cases, because it is used to
3446   prevent auto-linking to a word that is also a documented class or struct.
3447
3448 <hr>
3449 \section cmdquot \\"
3450
3451   \addindex \\\"
3452   This command writes the \c \" character to the output. This
3453   character has to be escaped in some cases, because it is used in pairs
3454   to indicate an unformatted text fragment.
3455
3456 <hr>
3457 \section cmdchardot \\.
3458
3459   \addindex \\\.
3460   This command writes a dot (`.`) to the output. This can be useful to 
3461   prevent ending a brief description when \ref cfg_javadoc_autobrief "JAVADOC_AUTOBRIEF" is enabled
3462   or to prevent starting a numbered list when the dot follows a number at
3463   the start of a line.
3464
3465 <hr>
3466 \section cmdeq \\=
3467
3468   \addindex \\=
3469   This command writes an equal sign (`=`) to the output. This
3470   character sequence has to be escaped in some cases, because it is used
3471   in Markdown header processing.
3472
3473 <hr>
3474 \section cmddcolon \\::
3475
3476   \addindex \\::
3477   This command writes a double colon (\c \::) to the output. This
3478   character sequence has to be escaped in some cases, because it is used
3479   to reference to documented entities.
3480
3481 <hr>
3482 \section cmdpipe \\|
3483
3484   \addindex \\|
3485   This command writes a pipe symbol (\|) to the output. This
3486   character has to be escaped in some cases, because it is used
3487   for Markdown tables.
3488
3489 <hr>
3490 \section cmdndash \\--
3491
3492   \addindex \\\--
3493   This command writes two dashes (\--) to the output. This allows
3494   writing two consecutive dashes to the output instead of one n-dash character (--).
3495
3496 <hr>
3497 \section cmdmdash \\---
3498
3499   \addindex \\\---
3500   This command writes three dashes (\---) to the output. This allows
3501   writing three consecutive dashes to the output instead of one m-dash character (---).
3502
3503 <hr>
3504 \htmlonly</p><center><p>\endhtmlonly
3505 <h2>
3506 \htmlonly --- \endhtmlonly
3507 Commands included for Qt compatibility
3508 \htmlonly --- \endhtmlonly
3509 </h2>
3510 \htmlonly</p></center><p>\endhtmlonly
3511
3512 The following commands are supported to remain compatible to the Qt class
3513 browser generator. Do \e not use these commands in your own documentation.
3514 <ul>
3515 <li>\\annotatedclasslist
3516 <li>\\classhierarchy
3517 <li>\\define
3518 <li>\\functionindex
3519 <li>\\header
3520 <li>\\headerfilelist
3521 <li>\\inherit
3522 <li>\\l
3523 <li>\\postheader
3524 </ul>
3525 <hr>
3526
3527
3528 \htmlonly
3529 </p>
3530 Go to the <a href="htmlcmds.html">next</a> section or return to the
3531  <a href="index.html">index</a>.
3532 <p>
3533 \endhtmlonly
3534
3535 */