1 /******************************************************************************
5 * Copyright (C) 1997-2012 by Dimitri van Heesch.
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.
13 * Documents produced by Doxygen are derivative works derived from the
14 * input used in their production; they are not affected by this license.
17 /*! \page commands Special Commands
19 \section cmd_intro Introduction
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.
25 Some commands have one or more arguments.
26 Each argument has a certain range:
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.
34 If in addition to the above argument specifiers [square] brackets are used the argument is optional.
36 Here is an alphabetically sorted list of all commands with references to their
40 \refitem cmdaddindex \\addindex
41 \refitem cmdaddtogroup \\addtogroup
42 \refitem cmdanchor \\anchor
44 \refitem cmdattention \\attention
45 \refitem cmdauthor \\author
46 \refitem cmdauthors \\authors
48 \refitem cmdbrief \\brief
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
64 \refitem cmddefgroup \\defgroup
65 \refitem cmddeprecated \\deprecated
66 \refitem cmddetails \\details
68 \refitem cmddontinclude \\dontinclude
70 \refitem cmddotfile \\dotfile
72 \refitem cmdelse \\else
73 \refitem cmdelseif \\elseif
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
99 \refitem cmdheaderfile \\headerfile
100 \refitem cmdhideinitializer \\hideinitializer
101 \refitem cmdhtmlinclude \\htmlinclude
102 \refitem cmdhtmlonly \\htmlonly
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
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
123 \refitem cmdname \\name
124 \refitem cmdnamespace \\namespace
125 \refitem cmdnosubgrouping \\nosubgrouping
126 \refitem cmdnote \\note
127 \refitem cmdoverload \\overload
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
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 \\\$
188 \refitem cmdbackslash \\\\
190 \refitem cmdtilde \\~
193 \refitem cmdhash \\\#
194 \refitem cmdperc \\\%
195 \refitem cmdquot \\\"
196 \refitem cmdchardot \\\.
197 \refitem cmddcolon \::
200 The following subsections provide a list of all commands that are recognized by
201 doxygen. Unrecognized commands are treated as normal text.
204 \htmlonly <center> \endhtmlonly
206 \htmlonly --- \endhtmlonly
207 Structural indicators
208 \htmlonly --- \endhtmlonly
210 \htmlonly </center> \endhtmlonly
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
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:
223 /*! \addtogroup mygrp
224 * Additional documentation for group 'mygrp'
235 /*! Another function */
243 \sa page \ref grouping "Grouping", sections \ref cmddefgroup "\\defgroup", \ref cmdingroup "\\ingroup", and
244 \ref cmdweakgroup "\\weakgroup".
247 \section cmdcallgraph \\callgraph
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.
258 \sa section \ref cmdcallergraph "\\callergraph".
261 \section cmdcallergraph \\callergraph
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.
272 \sa section \ref cmdcallgraph "\\callgraph".
275 \section cmdcategory \\category <name> [<header-file>] [<header-name>]
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.
282 \sa section \ref cmdclass "\\class".
285 \section cmdclass \\class <name> [<header-file>] [<header-name>]
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.
305 Click <a href="$(DOXYGEN_DOCDIR)/examples/class/html/index.html">here</a>
306 for the corresponding HTML documentation that is generated by doxygen.
310 \section cmddef \\def <name>
313 Indicates that a comment block contains documentation for a
317 \verbinclude define.h
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.
324 \section cmddefgroup \\defgroup <name> (group title)
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.
333 The \<name\> argument should be a single-word identifier.
335 \sa page \ref grouping "Grouping", sections \ref cmdingroup "\\ingroup", \ref cmdaddtogroup "\\addtogroup", and
336 \ref cmdweakgroup "\\weakgroup".
339 \section cmddir \\dir [<path fragment>]
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
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.
350 \section cmdenum \\enum <name>
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.
361 The type of an anonymous enum cannot be documented, but the values
362 of an anonymous enum can.
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.
372 \section cmdexample \\example <file-name>
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.
385 If \<file-name\> itself is not unique for the set of example files specified
387 \ref cfg_example_path "EXAMPLE_PATH" tag, you can include part of the absolute path
390 If more than one source file is needed for the example,
391 the \\include command can be used.
394 \verbinclude example.cpp
395 Where the example file \c example_test.cpp looks as follows:
396 \verbinclude example_test.cpp
398 Click <a href="$(DOXYGEN_DOCDIR)/examples/example/html/examples.html">here</a>
399 for the corresponding HTML documentation that is generated by doxygen.
402 \sa section \ref cmdinclude "\\include".
405 \section cmdendinternal \\endinternal
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.
414 \section cmdextends \\extends <name>
417 This command can be used to manually indicate an inheritance relation,
418 when the programming language does not support this concept natively
421 The file \c manual.c in the example directory shows how to use this command.
424 Click <a href="$(DOXYGEN_DOCDIR)/examples/manual/html/index.html">here</a>
425 for the corresponding HTML documentation that is generated by doxygen.
428 \sa section \ref cmdimplements "\\implements" and section
429 \ref cmdmemberof "\\memberof"
432 \section cmdfile \\file [<name>]
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.
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.
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.
452 \note In the above example \ref cfg_javadoc_autobrief "JAVADOC_AUTOBRIEF"
453 has been set to YES in the configuration file.
456 \section cmdfn \\fn (function declaration)
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.
464 If your comment block \e is in front of the function
465 declaration or definition this command can (and to avoid redundancy
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
472 This command is equivalent to \\var, \\typedef, and \\property.
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.
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.
486 \sa sections \ref cmdvar "\\var", \ref cmdproperty "\\property", and
487 \ref cmdtypedef "\\typedef".
490 \section cmdheaderfile \\headerfile <header-file> [<header-name>]
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\>).
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.
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:
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:
520 \headerfile test.h <test.h>
521 \headerfile test.h <>
522 \headerfile <> \endverbatim
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.
528 To disable the include information altogether set
529 \ref cfg_show_include_files "SHOW_INCLUDE_FILES" to \c NO.
532 \section cmdhideinitializer \\hideinitializer
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
543 \sa section \ref cmdshowinitializer "\\showinitializer".
546 \section cmdimplements \\implements <name>
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
553 The file \c manual.c in the example directory shows how to use this command.
556 Click <a href="$(DOXYGEN_DOCDIR)/examples/manual/html/index.html">here</a>
557 for the corresponding HTML documentation that is generated by doxygen.
560 \sa section \ref cmdextends "\\extends" and section
561 \ref cmdmemberof "\\memberof"
564 \section cmdingroup \\ingroup (<groupname> [<groupname> <groupname>])
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\>.
571 \sa page \ref grouping "Grouping", sections \ref cmddefgroup "\\defgroup",
572 \ref cmdaddtogroup "\\addtogroup", and \ref cmdweakgroup "\\weakgroup"
575 \section cmdinterface \\interface <name> [<header-file>] [<header-name>]
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
582 \sa section \ref cmdclass "\\class".
585 \section cmdinternal \\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.
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.
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.
601 \sa section \ref cmdendinternal "\\endinternal".
605 \section cmdmainpage \\mainpage [(title)]
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$).
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.
619 /*! \mainpage My Personal Index Page
621 * \section intro_sec Introduction
623 * This is the introduction.
625 * \section install_sec Installation
627 * \subsection step1 Step 1: Opening the box
633 You can refer to the main page using \\ref index.
635 \sa section \ref cmdsection "\\section",
636 section \ref cmdsubsection "\\subsection", and
637 section \ref cmdpage "\\page".
640 \section cmdmemberof \\memberof <name>
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).
649 It is also possible to use this command together with
650 \ref cmdpublic "\\public", \ref cmdprotected "\\protected" or
651 \ref cmdprivate "\\private".
653 The file \c manual.c in the example directory shows how to use this command.
656 Click <a href="$(DOXYGEN_DOCDIR)/examples/manual/html/index.html">here</a>
657 for the corresponding HTML documentation that is generated by doxygen.
660 \sa sections \ref cmdextends "\\extends", \ref cmdimplements "\\implements",
661 \ref cmdpublic "\\public", \ref cmdprotected "\\protected" and
662 \ref cmdprivate "\\private".
665 \section cmdname \\name [(header)]
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.
675 See section \ref memgroup for an example.
678 \section cmdnamespace \\namespace <name>
680 \addindex \\namespace
681 Indicates that a comment block contains documentation for a
682 namespace with name \<name\>.
685 \section cmdnosubgrouping \\nosubgrouping
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.
693 \sa sections \ref cmdpublicsection "\\publicsection",
694 \ref cmdprotectedsection "\\protectedsection" and
695 \ref cmdprivatesection "\\privatesection".
697 \section cmdoverload \\overload [(function declaration)]
700 This command can be used to generate the following
701 standard text for an overloaded member function:
703 > This is an overloaded member function, provided for convenience.
704 > It differs from the above function only in what argument(s) it accepts.
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.
710 Any other documentation that is inside the documentation block will
711 by appended after the generated message.
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.
719 The \\overload command does not work inside a one-line comment.
721 \verbinclude examples/overload.cpp
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.
728 \section cmdpackage \\package <name>
731 Indicates that a comment block contains documentation for a
732 Java package with name \<name\>.
735 \section cmdpage \\page <name> (title)
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'.
745 \verbinclude page.doc
747 Click <a href="$(DOXYGEN_DOCDIR)/examples/page/html/pages.html">here</a>
748 for the corresponding HTML documentation that is generated by doxygen.
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.
760 \sa section \ref cmdsection "\\section", section
761 \ref cmdsubsection "\\subsection", and section
765 \section cmdprivate \\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.
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
776 For starting a section of private members, in a way similar to the
777 "private:" class marker in C++, use \\privatesection.
779 \sa sections \ref cmdmemberof "\\memberof", \ref cmdpublic "\\public",
780 \ref cmdprotected "\\protected" and \ref cmdprivatesection "\\privatesection".
783 \section cmdprivatesection \\privatesection
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.
791 \sa sections \ref cmdmemberof "\\memberof", \ref cmdpublic "\\public",
792 \ref cmdprotected "\\protected" and \ref cmdprivate "\\private".
795 \section cmdproperty \\property (qualified property name)
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.
802 \sa sections \ref cmdfn "\\fn", \ref cmdtypedef "\\typedef", and
806 \section cmdprotected \\protected
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
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
818 For starting a section of protected members, in a way similar to the
819 "protected:" class marker in C++, use \\protectedsection.
821 \sa sections \ref cmdmemberof "\\memberof", \ref cmdpublic "\\public",
822 \ref cmdprivate "\\private" and \ref cmdprotectedsection "\\protectedsection".
825 \section cmdprotectedsection \\protectedsection
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
834 \sa sections \ref cmdmemberof "\\memberof", \ref cmdpublic "\\public",
835 \ref cmdprivate "\\private" and \ref cmdprotected "\\protected".
838 \section cmdprotocol \\protocol <name> [<header-file>] [<header-name>]
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.
845 \sa section \ref cmdclass "\\class".
848 \section cmdpublic \\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.
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
859 For starting a section of public members, in a way similar to the
860 "public:" class marker in C++, use \\publicsection.
862 \sa sections \ref cmdmemberof "\\memberof", \ref cmdprotected "\\protected",
863 \ref cmdprivate "\\private" and \ref cmdpublicsection "\\publicsection".
866 \section cmdpublicsection \\publicsection
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.
874 \sa sections \ref cmdmemberof "\\memberof", \ref cmdprotected "\\protected",
875 \ref cmdprivate "\\private" and \ref cmdpublic "\\public".
878 \section cmdrelates \\relates <name>
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.
889 \verbinclude relates.cpp
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.
896 \section cmdrelated \\related <name>
899 Equivalent to \ref cmdrelates "\\relates"
902 \section cmdrelatesalso \\relatesalso <name>
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.
913 \section cmdrelatedalso \\relatedalso <name>
915 \addindex relatedalso
916 Equivalent to \ref cmdrelatesalso "\\relatesalso"
919 \section cmdshowinitializer \\showinitializer
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
931 \sa section \ref cmdhideinitializer "\\hideinitializer".
934 \section cmdstruct \\struct <name> [<header-file>] [<header-name>]
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
941 \sa section \ref cmdclass "\\class".
944 \section cmdtypedef \\typedef (typedef declaration)
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.
951 \sa section \ref cmdfn "\\fn", \ref cmdproperty "\\property", and
955 \section cmdunion \\union <name> [<header-file>] [<header-name>]
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
962 \sa section \ref cmdclass "\\class".
965 \section cmdvar \\var (variable declaration)
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.
972 \sa section \ref cmdfn "\\fn", \ref cmdproperty "\\property", and \ref cmdtypedef "\\typedef".
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
981 \sa page \ref grouping "Grouping" and section \ref cmdaddtogroup "\\addtogroup".
985 \htmlonly <center> \endhtmlonly
987 \htmlonly --- \endhtmlonly
989 \htmlonly --- \endhtmlonly
991 \htmlonly </center>\endhtmlonly
994 \section cmdattention \\attention { attention text }
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.
1006 \section cmdauthor \\author { list of authors }
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.
1019 \verbinclude author.cpp
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.
1026 \section cmdauthors \\authors { list of authors }
1029 Equivalent to \ref cmdauthor "\\author".
1032 \section cmdbrief \\brief { brief description }
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.
1045 Synonymous to \\short.
1048 \section cmdbug \\bug { bug description }
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"
1063 \section cmdcond \\cond [<section-label>]
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).
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.
1077 For conditional sections within a comment block one should
1078 use a \ref cmdif "\\if" ... \ref cmdendif "\\endif" block.
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.
1083 Here is an example showing the commands in action:
1091 virtual void func() = 0;
1095 /** A method used for testing */
1096 virtual void test() = 0;
1103 * The implementation of the interface
1105 class Implementation : public Intf
1115 /** This method is obsolete and does
1116 * not show up in the documentation.
1125 The output will be different depending on whether or not \c ENABLED_SECTIONS
1126 contains \c TEST, or \c DEV
1128 \sa section \ref cmdendcond "\\endcond".
1131 \section cmdcopyright \\copyright { copyright description }
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.
1140 \section cmddate \\date { date description }
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"
1155 \section cmddeprecated \\deprecated { description }
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.
1163 \section cmddetails \\details { detailed description }
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.
1171 \section cmdelse \\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.
1178 \sa \ref cmdif "\\if", \ref cmdifnot "\\ifnot", \ref cmdelseif "\\elseif",
1179 \ref cmdendif "\\endif."
1182 \section cmdelseif \\elseif <section-label>
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.
1193 \sa sections \ref cmdendif "\\endif", \ref cmdifnot "\\ifnot",
1194 \ref cmdelse "\\else", and \ref cmdelseif "\\elseif".
1197 \section cmdendcond \\endcond
1200 Ends a conditional section that was started by \ref cmdcond "\\cond".
1202 \sa section \ref cmdcond "\\cond".
1205 \section cmdendif \\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.
1211 \sa sections \ref cmdif "\\if" and \ref cmdifnot "\\ifnot".
1214 \section cmdexception \\exception <exception-object> { exception description }
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
1229 \section cmdif \\if <section-label>
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.
1242 /*! Unconditionally shown documentation.
1244 * Only included if Cond1 is set.
1247 * Only included if Cond2 is set.
1249 * Only included if Cond2 and Cond3 are set.
1253 * Unconditional text.
1257 You can also use conditional commands inside aliases. To
1258 document a class in two languages you could for instance use:
1266 * Dit is Nederlands.
1274 Where the following aliases are defined in the configuration file:
1277 ALIASES = "english=\if english" \
1278 "endenglish=\endif" \
1283 and \c ENABLED_SECTIONS can be used to enable either \c english or \c dutch.
1285 \sa sections \ref cmdendif "\\endif", \ref cmdifnot "\\ifnot",
1286 \ref cmdelse "\\else", and \ref cmdelseif "\\elseif".
1289 \section cmdifnot \\ifnot <section-label>
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
1299 \sa sections \ref cmdendif "\\endif", \ref cmdif "\\if",
1300 \ref cmdelse "\\else", and \ref cmdelseif "\\elseif".
1303 \section cmdinvariant \\invariant { description of invariant }
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.
1317 \section cmdnote \\note { text }
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"
1331 \section cmdpar \\par [(paragraph title)] { paragraph }
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.
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.
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.
1348 \verbinclude par.cpp
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.
1355 \section cmdparam \\param [(dir)] <parameter-name> { parameter description }
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.
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:
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
1377 void memcpy(void *dest, const void *src, size_t n);
1380 The parameter description is a paragraph with no special internal structure.
1381 All visual enhancement commands may be used inside the paragraph.
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
1389 Note that you can also document multiple parameters with a single
1390 \\param command using a comma separated list. Here is an example:
1393 /** Sets the position.
1394 * @param x,y,z Coordinates of the position in 3D space.
1396 void setPosition(double x,double y,double z,double t)
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.
1406 @param datatype1|datatype2 $paramname description
1410 \section cmdtparam \\tparam <template-parameter-name> { description }
1413 Starts a template parameter for a class or function template parameter
1414 with name \<template-parameter-name\>, followed by a description of the
1417 Otherwise similar to \ref cmdparam "\\param".
1420 \section cmdpost \\post { description of the postcondition }
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.
1434 \section cmdpre \\pre { description of the precondition }
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.
1448 \section cmdremark \\remark { remark text }
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.
1462 \section cmdremarks \\remarks { remark text }
1465 Equivalent to \ref cmdremark "\\remark".
1468 \section cmdresult \\result { description of the result value }
1471 Equivalent to \ref cmdreturn "\\return".
1474 \section cmdreturn \\return { description of the return value }
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
1486 \section cmdreturns \\returns { description of the return value }
1489 Equivalent to \ref cmdreturn "\\return".
1492 \section cmdretval \\retval <return value> { description }
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
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.
1506 \section cmdsa \\sa { references }
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
1517 Synonymous to \\see.
1519 \sa section \ref autolink "autolink" for information on how to create links
1523 \section cmdsee \\see { references }
1526 Equivalent to \ref cmdsa "\\sa". Introduced for compatibility with Javadoc.
1529 \section cmdshort \\short { short description }
1532 Equivalent to \ref cmdbrief "\\brief".
1535 \section cmdsince \\since { text }
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.
1545 \section cmdtest \\test { paragraph describing a test case }
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.
1555 \section cmdthrow \\throw <exception-object> { exception description }
1558 Synonymous to \\exception (see section \ref cmdexception "\\exception").
1561 the tag \\throws is a synonym for this tag.
1563 \sa section \ref cmdexception "\\exception"
1566 \section cmdthrows \\throws <exception-object> { exception description }
1569 Equivalent to \ref cmdthrow "\\throw".
1572 \section cmdtodo \\todo { paragraph describing what is to be done }
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.
1582 \section cmdversion \\version { version number }
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.
1598 \section cmdwarning \\warning { warning message }
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"
1613 \section cmdxrefitem \\xrefitem <key> "(heading)" "(list title)" { text }
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.
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.
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
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
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
1647 \htmlonly <center> \endhtmlonly
1649 \htmlonly --- \endhtmlonly
1650 Commands to create links
1651 \htmlonly --- \endhtmlonly
1653 \htmlonly </center>\endhtmlonly
1656 \section cmdaddindex \\addindex (text)
1658 \addindex \\addindex
1659 This command adds (text) to the \f$\mbox{\LaTeX}\f$ index.
1662 \section cmdanchor \\anchor <word>
1665 This command places an invisible, named anchor into the documentation
1666 to which you can refer with the \\ref command.
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").
1672 \sa section \ref cmdref "\\ref".
1675 \section cmdcite \\cite <label>
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.
1687 \section cmdendlink \\endlink
1690 This command ends a link that is started with the \\link command.
1692 \sa section \ref cmdlink "\\link".
1695 \section cmdlink \\link <link-object>
1698 The links that are automatically generated by doxygen always have the
1699 name of the object they point to as link-text.
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.
1707 See section \ref autolink "autolink" for more information on automatically
1708 generated links and valid link-objects.
1711 \section cmdref \\ref <name> ["(text)"]
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.
1724 Section \ref cmdpage "\\page" for an example of the \\ref command.
1727 \section cmdsubpage \\subpage <name> ["(text)"]
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.
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.
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\>.
1744 See the \ref cmdsection "\\section"
1745 and \ref cmdsubsection "\\subsection" commands if you want to add structure
1746 without creating multiple pages.
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
1754 /*! \mainpage A simple manual
1758 This manual is divided in the following sections:
1760 - \subpage advanced "Advanced usage"
1763 //-----------------------------------------------------------
1765 /*! \page intro Introduction
1766 This page introduces the user to the topic.
1767 Now you can proceed to the \ref advanced "advanced section".
1770 //-----------------------------------------------------------
1772 /*! \page advanced Advanced Usage
1773 This page is for advanced users.
1774 Make sure you have first read \ref intro "the introduction".
1779 \section cmdtableofcontents \\tableofcontents
1781 \addindex \\tableofcontents
1782 Creates a table of contents at the top of a page, listing all
1783 sections and subsections in the page.
1785 \warning This command only works inside related page documentation and
1786 \e not in other documentation blocks and only has effect in the
1790 \section cmdsection \\section <section-name> (section title)
1793 Creates a section with name \<section-name\>. The title of the
1794 section should be specified as the second argument of the \\section
1797 \warning This command only works inside related page documentation and
1798 \e not in other documentation blocks!
1801 Section \ref cmdpage "\\page" for an example of the
1802 \ref cmdsection "\\section" command.
1805 \section cmdsubsection \\subsection <subsection-name> (subsection title)
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
1812 \warning This command only works inside a section of a related page
1813 documentation block and
1814 \e not in other documentation blocks!
1817 Section \ref cmdpage "\\page" for an example of the
1818 \ref cmdsubsection "\\subsection" command.
1821 \section cmdsubsubsection \\subsubsection <subsubsection-name> (subsubsection title)
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.
1828 \warning This command only works inside a subsection of a
1829 related page documentation block and
1830 \e not in other documentation blocks!
1833 Section \ref cmdpage "\\page" for an example of the
1834 \ref cmdsection "\\section" command and
1835 \ref cmdsubsection "\\subsection" command.
1838 \section cmdparagraph \\paragraph <paragraph-name> (paragraph title)
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.
1845 \warning This command only works inside a subsubsection of a
1846 related page documentation block and
1847 \e not in other documentation blocks!
1851 \htmlonly <center> \endhtmlonly
1853 \htmlonly --- \endhtmlonly
1854 Commands for displaying examples
1855 \htmlonly --- \endhtmlonly
1857 \htmlonly </center>\endhtmlonly
1860 \section cmddontinclude \\dontinclude <file-name>
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.
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.
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.
1881 \verbinclude include.cpp
1882 Where the example file \c example_test.cpp looks as follows:
1883 \verbinclude example_test.cpp
1885 Click <a href="$(DOXYGEN_DOCDIR)/examples/include/html/example.html">here</a>
1886 for the corresponding HTML documentation that is generated by doxygen.
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.
1893 \sa sections \ref cmdline "\\line", \ref cmdskip "\\skip",
1894 \ref cmdskipline "\\skipline", \ref cmduntil "\\until", and
1895 \ref cmdinclude "\\include".
1898 \section cmdinclude \\include <file-name>
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.
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.
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.
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.
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.
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.
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.
1932 \sa sections \ref cmdexample "\\example", \ref cmddontinclude "\\dontinclude", and
1933 \ref cmdverbatim "\\verbatim".
1936 \section cmdincludelineno \\includelineno <file-name>
1938 \addindex \\includelineno
1939 This command works the same way as \\include, but will add line
1940 numbers to the included file.
1942 \sa section \ref cmdinclude "\\include".
1945 \section cmdline \\line ( pattern )
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
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
1958 See section \ref cmddontinclude "\\dontinclude" for an example.
1961 \section cmdskip \\skip ( pattern )
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.
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).
1972 See section \ref cmddontinclude "\\dontinclude" for an example.
1975 \section cmdskipline \\skipline ( pattern )
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.
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).
1988 \verbatim\skipline pattern\endverbatim
1992 \line pattern\endverbatim
1994 See section \ref cmddontinclude "\\dontinclude" for an example.
1997 \section cmdsnippet \\snippet <file-name> ( block_id )
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.
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".
2009 \snippet snippets/example.cpp Adding a resource
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
2018 QImage image(64, 64, QImage::Format_RGB32);
2019 image.fill(qRgb(255, 160, 128));
2021 //! [Adding a resource]
2022 document->addResource(QTextDocument::ImageResource,
2023 QUrl("mydata://image.png"), QVariant(image));
2024 //! [Adding a resource]
2028 Note that the lines containing the block markers will not be included,
2029 so the output will be:
2032 document->addResource(QTextDocument::ImageResource,
2033 QUrl("mydata://image.png"), QVariant(image));
2036 Note also that the [block_id] markers should appear exactly twice in the
2039 see section \ref cmddontinclude "\\dontinclude" for an alternative way
2040 to include fragments of a source file that does not require markers.
2043 \section cmduntil \\until ( pattern )
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.
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).
2055 See section \ref cmddontinclude "\\dontinclude" for an example.
2058 \section cmdverbinclude \\verbinclude <file-name>
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.
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.
2069 \section cmdhtmlinclude \\htmlinclude <file-name>
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.
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.
2081 \htmlonly <center> \endhtmlonly
2083 \htmlonly --- \endhtmlonly
2084 Commands for visual enhancements
2085 \htmlonly --- \endhtmlonly
2087 \htmlonly </center>\endhtmlonly
2089 \section cmda \\a <word>
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.
2098 ... the \a x and \a y coordinates are used to ...
2100 This will result in the following text:<br><br>
2101 ... the \a x and \a y coordinates are used to ...
2103 Equivalent to \ref cmda "\\e" and \ref cmdem "\\em".
2104 To emphasize multiple words use \<em\>multiple words\</em\>.
2107 \section cmdarg \\arg { item-description }
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
2114 Each argument should start with a \\arg command.
2119 \arg \c AlignLeft left alignment.
2120 \arg \c AlignCenter center alignment.
2121 \arg \c AlignRight right alignment
2123 No other types of alignment are supported.
2125 will result in the following text:<br><br>
2127 <li> \c AlignLeft left alignment.
2128 <li> \c AlignCenter center alignment.
2129 <li> \c AlignRight right alignment
2131 No other types of alignment are supported.
2134 For nested lists, HTML commands should be used.
2136 Equivalent to \ref cmdli "\\li"
2140 \section cmdb \\b <word>
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\>.
2148 \section cmdc \\c <word>
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\>.
2158 ... This function returns \c void and not \c int ...
2160 will result in the following text:<br><br>
2161 ... This function returns \c void and not \c int ...
2163 Equivalent to \ref cmdp "\\p"
2164 To have multiple words in typewriter font use \<tt\>multiple words\</tt\>.
2167 \section cmdcode \\code [ '{'<word>'}']
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.
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.
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:
2197 \sa section \ref cmdendcode "\\endcode" and section \ref cmdverbatim "\\verbatim".
2200 \section cmdcopydoc \\copydoc <link-object>
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
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.
2215 To copy the documentation for a member of a
2216 class one can, for instance, put the following in the documentation:
2219 /*! @copydoc MyClass::myfunction()
2220 * More documentation.
2224 if the member is overloaded, you should specify the argument types
2225 explicitly (without spaces!), like in the following:
2228 //! @copydoc MyClass::myfunction(type1,type2)
2231 Qualified names are only needed if the context in which the documentation
2232 block is found requires them.
2234 The \\copydoc command can be used recursively, but cycles in the \\copydoc
2235 relation will be broken and flagged as an error.
2237 Note that <code>\\copydoc foo()</code> is roughly equivalent to doing:
2239 \brief \copybrief foo()
2240 \details \copydetails foo()
2242 See \ref cmdcopybrief "\\copybrief" and
2243 \ref cmdcopydetails "\\copydetails" for copying only the brief or
2244 detailed part of the comment block.
2247 \section cmdcopybrief \\copybrief <link-object>
2249 Works in a similar way as \ref cmdcopydoc "\\copydoc" but will
2250 only copy the brief description, not the detailed documentation.
2253 \section cmdcopydetails \\copydetails <link-object>
2255 Works in a similar way as \ref cmdcopydoc "\\copydoc" but will
2256 only copy the detailed documentation, not the brief description.
2259 \section cmddot \\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:
2278 * Class relations expressed via an inline dot graph:
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" ];
2287 * Note that the classes in the above graph are clickable
2288 * (in the HTML output).
2293 \section cmdmsc \\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
2305 Here is an example of the use of the \\msc command.
2307 /** Sender class. Can be used to send a command to the server.
2308 * The receiver will acknowledge the command by calling Ack().
2311 * Sender->Receiver [label="Command()", URL="\ref Receiver::Command()"];
2312 * Sender<-Receiver [label="Ack()", URL="\ref Ack()", ID="1"];
2318 /** Acknowledgement from server */
2322 /** Receiver class. Can be used to receive and execute commands.
2323 * After execution of a command, the receiver will send an acknowledgement
2326 * Receiver<-Sender [label="Command()", URL="\ref Command()"];
2327 * Receiver->Sender [label="Ack()", URL="\ref Sender::Ack()", ID="1"];
2333 /** Executable a command on the server */
2334 void Command(int commandId);
2339 \sa section \ref cmdmscfile "\\mscfile".
2342 \section cmddotfile \\dotfile <file> ["caption"]
2345 Inserts an image generated by dot from \<file\> into the documentation.
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.
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.
2360 \section cmdmscfile \\mscfile <file> ["caption"]
2363 Inserts an image generated by mscgen from \<file\> into the documentation.
2364 See http://www.mcternan.me.uk/mscgen/ for examples.
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.
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.
2378 \sa section \ref cmdmsc "\\msc".
2381 \section cmde \\e <word>
2384 Displays the argument \<word\> in italics.
2385 Use this command to emphasize words.
2390 ... this is a \e really good example ...
2392 will result in the following text:<br><br>
2393 ... this is a \e really good example ...
2395 Equivalent to \ref cmda "\\a" and \ref cmdem "\\em".
2396 To emphasize multiple words use \<em\>multiple words\</em\>.
2399 \section cmdem \\em <word>
2402 Displays the argument \<word\> in italics.
2403 Use this command to emphasize words.
2408 ... this is a \em really good example ...
2410 will result in the following text:<br><br>
2411 ... this is a \em really good example ...
2413 Equivalent to \ref cmda "\\a" and \ref cmde "\\e".
2414 To emphasize multiple words use \<em\>multiple words\</em\>.
2417 \section cmdendcode \\endcode
2420 Ends a block of code.
2421 \sa section \ref cmdcode "\\code"
2424 \section cmdenddot \\enddot
2427 Ends a blocks that was started with \ref cmddot "\\dot".
2430 \section cmdendmsc \\endmsc
2433 Ends a blocks that was started with \ref cmdmsc "\\msc".
2436 \section cmdendhtmlonly \\endhtmlonly
2438 \addindex \\endhtmlonly
2439 Ends a block of text that was started with a \\htmlonly command.
2441 \sa section \ref cmdhtmlonly "\\htmlonly".
2444 \section cmdendlatexonly \\endlatexonly
2446 \addindex \\endlatexonly
2447 Ends a block of text that was started with a \\latexonly command.
2449 \sa section \ref cmdlatexonly "\\latexonly".
2452 \section cmdendmanonly \\endmanonly
2454 \addindex \\endmanonly
2455 Ends a block of text that was started with a \\manonly command.
2457 \sa section \ref cmdmanonly "\\manonly".
2460 \section cmdendrtfonly \\endrtfonly
2462 \addindex \\endrtfonly
2463 Ends a block of text that was started with a \\rtfonly command.
2465 \sa section \ref cmdrtfonly "\\rtfonly".
2469 \section cmdendverbatim \\endverbatim
2471 \addindex \\endverbatim
2472 Ends a block of text that was started with a \\verbatim command.
2474 \sa section \ref cmdverbatim "\\verbatim".
2477 \section cmdendxmlonly \\endxmlonly
2479 \addindex \\endxmlonly
2480 Ends a block of text that was started with a \\xmlonly command.
2482 \sa section \ref cmdxmlonly "\\xmlonly".
2485 \section cmdfdollar \\f$
2489 Marks the start and end of an in-text formula.
2490 \sa section \ref formulas "formulas" for an example.
2493 \section cmdfbropen \\f[
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".
2502 \section cmdfbrclose \\f]
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".
2511 \section cmdfcurlyopen \\f{environment}{
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
2517 \sa section \ref cmdfcurlyclose "\\f}" and section \ref formulas "formulas".
2520 \section cmdfcurlyclose \\f}
2522 Marks the end of a formula that is in a specific environment.
2523 \sa section \ref cmdfcurlyopen "\\f{" and section \ref formulas "formulas".
2526 \section cmdhtmlonly \\htmlonly
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.
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.
2538 \note environment variables (like \$(HOME) ) are resolved inside a
2541 \sa section \ref cmdmanonly "\\manonly", section
2542 \ref cmdlatexonly "\\latexonly", and section
2543 \ref cmdrtfonly "\\rtfonly".
2546 \section cmdimage \\image <format> <file> ["caption"] [<sizeindication>=<size>]
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.
2553 The first argument specifies the output format. Currently, the
2554 following values are supported: \c html, \c latex and \c rtf.
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.
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.
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>).
2577 Here is example of a comment block:
2580 /*! Here is a snapshot of my new application:
2581 * \image html application.jpg
2582 * \image latex application.eps "My application" width=10cm
2586 And this is an example of how the relevant part of the configuration file
2590 IMAGE_PATH = my_image_dir
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).
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!
2601 \section cmdlatexonly \\latexonly
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.
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
2614 environment variables (like \$(HOME) ) are resolved inside a
2615 \f$\mbox{\LaTeX}\f$-only block.
2617 \sa section \ref cmdrtfonly "\\rtfonly",
2618 section \ref cmdxmlonly "\\xmlonly",
2619 section \ref cmdmanonly "\\manonly", and
2620 section \ref cmdhtmlonly "\\htmlonly".
2623 \section cmdmanonly \\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.
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.
2635 \sa section \ref cmdhtmlonly "\\htmlonly",
2636 section \ref cmdxmlonly "\\xmlonly",
2637 section \ref cmdrtfonly "\\rtfonly", and
2638 section \ref cmdlatexonly "\\latexonly".
2641 \section cmdli \\li { item-description }
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
2648 Each argument should start with a \\li command.
2653 \li \c AlignLeft left alignment.
2654 \li \c AlignCenter center alignment.
2655 \li \c AlignRight right alignment
2657 No other types of alignment are supported.
2659 will result in the following text:<br><br>
2661 <li> \c AlignLeft left alignment.
2662 <li> \c AlignCenter center alignment.
2663 <li> \c AlignRight right alignment
2665 No other types of alignment are supported.
2668 For nested lists, HTML commands should be used.
2670 Equivalent to \ref cmdarg "\\arg"
2676 Forces a new line. Equivalent to \<br\> and inspired by
2677 the printf function.
2680 \section cmdp \\p <word>
2683 Displays the parameter \<word\> using a typewriter font.
2684 You can use this command to refer to member function parameters in
2689 ... the \p x and \p y coordinates are used to ...
2691 This will result in the following text:<br><br>
2692 ... the \p x and \p y coordinates are used to ...
2694 Equivalent to \ref cmdc "\\c"
2695 To have multiple words in typewriter font use \<tt\>multiple words\</tt\>.
2698 \section cmdrtfonly \\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.
2705 This command can be used to include RTF code that is too complex
2709 environment variables (like \$(HOME) ) are resolved inside a
2712 \sa section \ref cmdmanonly "\\manonly", section
2713 \ref cmdxmlonly "\\xmlonly", section
2714 \ref cmdlatexonly "\\latexonly", and section
2715 \ref cmdhtmlonly "\\htmlonly".
2718 \section cmdverbatim \\verbatim
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.
2726 \warning Make sure you include a \\endverbatim command for each
2727 \\verbatim command or the parser will get confused!
2729 \sa section \ref cmdcode "\\code", and
2730 section \ref cmdverbinclude "\\verbinclude".
2733 \section cmdxmlonly \\xmlonly
2736 Starts a block of text that will be verbatim included in the
2737 generated XML output only. The block ends with a
2740 This command can be used to include custom XML tags.
2742 \sa section \ref cmdmanonly "\\manonly", section
2743 \ref cmdrtfonly "\\rtfonly", section
2744 \ref cmdlatexonly "\\latexonly", and section
2745 \ref cmdhtmlonly "\\htmlonly".
2748 \section cmdbackslash \\\\
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.
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.
2764 \section cmdtilde \\~[LanguageId]
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).
2774 /*! \~english This is english \~dutch Dit is Nederlands \~german Dieses ist
2775 deutsch. \~ output for all languages.
2781 \section cmdamp \\\&
2784 This command writes the \& character to output.
2785 This character has to be escaped because it has a special meaning in HTML.
2788 \section cmddollar \\\$
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.
2796 \section cmdhash \\\#
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.
2807 This command writes the \< character to the output.
2808 This character has to be escaped because it has a special meaning in HTML.
2814 This command writes the \> character to the output. This
2815 character has to be escaped because it has a special meaning in HTML.
2818 \section cmdperc \\\%
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.
2826 \section cmdquot \\"
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.
2834 \section cmdchardot \\.
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.
2843 \section cmddcolon \\::
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.
2851 \htmlonly <center> \endhtmlonly
2853 \htmlonly --- \endhtmlonly
2854 Commands included for Qt compatibility
2855 \htmlonly --- \endhtmlonly
2857 \htmlonly </center>\endhtmlonly
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.
2862 <li>\\annotatedclasslist
2863 <li>\\classhierarchy
2867 <li>\\headerfilelist