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