reference manual - inf.ufpr.br · manual for version 1.5.6 written by dimitri van heesch c...
TRANSCRIPT
Man
ual
for
ver
sion
1.5
.6
Wri
tten
by
Dim
itri
van
Hee
sch
c ©1997-2
007
50
How
tore
po
rta
bu
g
Bugs
are
trac
ked
inG
NO
ME
’sbugzilla
dat
abas
e.B
efore
subm
itti
ng
anewbug
,fi
rstsearch
thro
ugh
the
dat
abas
eif
the
sam
ebug
has
alre
ady
bee
nsu
bm
itte
dby
oth
ers
(the
doxygen
pro
duct
wil
l
be
pre
sele
cted
).If
you
bel
ieve
you
hav
efo
und
anew
bug,ple
asereportit
.
Ifyou
are
unsu
rew
het
her
or
not
som
ethin
gis
abug,ple
ase
ask
hel
pon
theusersmailinglist
firs
t
(subsc
ripti
on
isre
quir
ed).
Ifyou
send
only
a(v
ague)
des
crip
tion
of
abug,
you
are
usu
ally
not
ver
yhel
pfu
lan
dit
wil
lco
stm
em
uch
more
tim
eto
figure
out
what
you
mea
n.
Inth
ew
ors
t-ca
seyour
bug
report
may
even
be
com
ple
tely
ignore
d
by
me,
soal
way
str
yto
incl
ude
the
foll
ow
ing
info
rmat
ion
inyour
bug
report
:
•T
he
ver
sion
of
doxygen
you
are
usi
ng
(for
inst
ance
1.5
.3,
usedoxygen--version
ifyou
are
not
sure
).
•T
he
nam
ean
dver
sion
num
ber
of
your
oper
atin
gsy
stem
(for
inst
ance
SuS
EL
inux
6.4
)
•It
isusu
ally
agood
idea
tose
nd
along
the
confi
guat
ion
file
asw
ell,
but
ple
ase
use
doxygen
wit
hth
e
-s
flag
whil
egen
erat
ing
itto
kee
pit
smal
l(u
sedoxygen-s-u[configName]
tost
rip
the
com
men
tsfr
om
anex
isti
ng
confi
gfi
le).
•T
he
easi
est
(and
oft
enth
eonly
)w
ayfo
rm
eto
fix
bugs
isif
you
can
atta
cha
smal
lex
ample
dem
on-
stra
ting
the
pro
ble
myou
hav
eto
the
bug
report
,so
Ica
nre
pro
duce
iton
my
mac
hin
e.P
leas
em
ake
sure
the
exam
ple
isval
idso
urc
eco
de
(could
pote
nti
ally
com
pil
e)an
dth
atth
epro
ble
mis
real
lyca
p-
ture
dby
the
exam
ple
(Ioft
enget
exam
ple
sth
atdo
not
trig
ger
the
actu
albug!)
.If
you
inte
nd
tose
nd
more
than
one
file
ple
ase
zip
or
tar
the
file
sto
get
her
into
asi
ngle
file
for
easi
erpro
cess
ing.
Note
that
when
report
ing
anew
bug
you’l
lget
ach
ance
toat
tach
afi
leto
itonly
aft
ersu
bm
itti
ng
the
init
ial
bug
des
crip
tion.
You
can
(and
are
enco
ura
ged
to)
add
apat
chfo
ra
bug.
Ifyou
do
sople
ase
use
PAT
CH
asa
key
word
inth
e
bug
entr
yfo
rm.
Ifyou
hav
eid
eas
how
tofi
xex
isti
ng
bugs
and
lim
itat
ions
ple
ase
dis
cuss
them
on
thedevelopers
mailinglist
(subsc
ripti
on
requir
ed).
Pat
ches
can
also
be
sent
dir
ectl
ifyou
pre
fer
not
tose
nd
them
via
the
bug
trac
ker
or
mai
ling
list
.
For
pat
ches
ple
ase
use
”dif
f-u
N”
or
incl
ude
the
file
syou
modifi
ed.
Ifyou
send
more
than
one
file
ple
ase
tar
or
zip
ever
yth
ing,so
Ionly
hav
eto
save
and
dow
nlo
adone
file
.
Pa
rtII
Ref
eren
ceM
an
ual
Fea
ture
s
•R
equir
esver
yli
ttle
over
hea
dfr
om
the
wri
ter
of
the
docu
men
tati
on.
Pla
inte
xt
wil
ldo,
but
for
more
fancy
or
stru
cture
doutp
ut
HT
ML
tags
and/o
rso
me
of
doxygen
’ssp
ecia
lco
mm
ands
can
be
use
d.
•S
upport
sC
/C+
+,J
ava,
(Corb
aan
dM
icro
soft
)Ja
va,
Pyth
on,I
DL
,C#,O
bje
ctiv
e-C
and
toso
me
exte
nt
Dan
dP
HP
sourc
es.
•S
upport
sdocu
men
tati
on
of
file
s,nam
espac
es,p
ackag
es,c
lass
es,s
truct
s,unio
ns,
tem
pla
tes,
var
iable
s,
funct
ions,
typed
efs,
enum
san
ddefi
nes
.
Use
rM
an
ua
lfo
rD
ox
yg
en1
.5.6
,w
ritt
enb
yD
imit
riva
nH
eesc
hc ©
19
97
-20
06
49
•S
ince
itis
imposs
ible
tote
stal
lposs
ible
code
frag
men
ts,
itis
ver
yw
ell
poss
ible
,th
atso
me
val
id
pie
ceof
C/C
++
code
isnot
han
dle
dpro
per
ly.
Ifyou
find
such
apie
ce,
ple
ase
send
itto
me,
soI
can
impro
ve
doxygen
’spar
sing
capab
ilit
ies.
Try
tom
ake
the
pie
ceof
code
you
send
assm
all
asposs
ible
,
tohel
pm
enar
row
dow
nth
ese
arch
.
•D
oxygen
does
not
work
pro
per
lyif
ther
ear
em
ult
iple
clas
ses,
stru
cts
or
unio
ns
wit
hth
esa
me
nam
e
inyour
code.
Itsh
ould
not
cras
hhow
ever
,ra
ther
itsh
ould
ignore
all
of
the
clas
ses
wit
hth
esa
me
nam
eex
cept
one.
•S
om
eco
mm
ands
do
not
work
insi
de
the
argum
ents
of
oth
erco
mm
ands.
Insi
de
aH
TM
Lli
nk
(i.e<
a
hre
f=”.
..”>
...<
a>)
for
inst
ance
oth
erco
mm
ands
(incl
udin
goth
erH
TM
Lco
mm
ands)
do
not
work
!
The
sect
ionin
gco
mm
ands
are
anim
port
ant
exce
pti
on.
•R
edundan
tbra
ces
can
confu
sedoxygen
inso
me
case
s.F
or
exam
ple
:
voidf(int);
ispro
per
lypar
sed
asa
funct
ion
dec
lara
tion,but
constint(a);
isal
sose
enas
afu
nct
ion
dec
lara
tion
wit
hnam
eint
,bec
ause
only
the
synta
xis
anal
yse
d,
not
the
sem
anti
cs.
Ifth
ere
dundan
tbra
ces
can
be
det
ecte
d,as
in
int*(a[20]);
then
doxygen
wil
lre
move
the
bra
ces
and
corr
ectl
ypar
seth
ere
sult
.
•N
ot
all
nam
esin
code
frag
men
tsth
atar
ein
cluded
inth
edocu
men
tati
on
are
repla
ced
by
links
(for
inst
ance
when
usi
ngSOURCEBROWSER
=YES
)an
dli
nks
toover
load
edm
ember
sm
aypoin
tto
the
wro
ng
mem
ber
.T
his
also
hold
sfo
rth
e”R
efer
ence
dby”
list
that
isgen
erat
edfo
rea
chfu
nct
ion.
For
apar
tth
isis
bec
ause
the
code
par
ser
isn’t
smar
ten
ough
atth
em
om
ent.
I’ll
try
toim
pro
ve
this
inth
efu
ture
.B
ut
even
wit
hth
ese
impro
vem
ents
not
ever
yth
ing
can
be
pro
per
lyli
nked
toth
eco
rre-
spondin
gdocu
men
tati
on,bec
ause
of
poss
ible
ambig
uit
ies
or
lack
of
info
rmat
ion
about
the
conte
xt
in
whic
hth
eco
de
frag
men
tis
found.
•It
isnot
poss
ible
toin
sert
anon-m
ember
funct
ion
fin
acl
ass
Ausi
ng
the\
rela
tes
or\r
elat
esal
so
com
man
d,if
clas
sA
alre
ady
has
am
ember
wit
hnam
ef
and
the
sam
ear
gum
ent
list
.
•T
her
eis
only
ver
yli
mit
edsu
pport
for
mem
ber
spec
iali
zati
on
atth
em
om
ent.
Itonly
work
sif
ther
eis
asp
ecia
lize
dte
mpla
tecl
ass
asw
ell.
•N
ot
all
spec
ial
com
man
ds
are
pro
per
lytr
ansl
ated
toR
TF.
•V
ersi
on
1.8
.6of
dot
(and
may
be
earl
ier
ver
sions
too)
do
not
gen
erat
epro
per
map
file
s,ca
usi
ng
the
gra
phs
that
doxygen
gen
erat
esnot
tobe
pro
per
lycl
ickab
le.
•P
HP
only
:D
oxygen
requir
esth
atal
lP
HP
stat
emen
ts(i
.e.
code)
isw
rapped
ina
funct
ions/
met
hods,
oth
erw
ise
you
may
run
into
par
sepro
ble
ms.
How
toh
elp
The
dev
elopm
ent
of
Doxygen
hig
hly
dep
ends
on
your
input!
Ifyou
are
tryin
gD
oxygen
let
me
know
what
you
thin
kof
it(d
oyou
mis
sce
rtai
nfe
ature
s?).
Even
ifyou
dec
ide
not
touse
it,ple
ase
let
me
know
why.
Use
rM
an
ua
lfo
rD
ox
yg
en1
.5.6
,w
ritt
enb
yD
imit
riva
nH
eesc
hc ©
19
97
-20
06
CO
NT
EN
TS
1
Co
nte
nts
IU
ser
Ma
nu
al
4
1C
om
pil
ing
from
sou
rce
on
Un
ix4
2In
stall
ing
the
bin
ari
eson
Un
ix6
3K
now
nco
mp
ilati
on
pro
ble
ms
for
Un
ix6
4C
om
pil
ing
from
sou
rce
on
Win
dow
s8
5In
stall
ing
the
bin
ari
eson
Win
dow
s9
6T
ools
use
dto
dev
elop
doxygen
10
7S
tep
1:
Cre
ati
ng
aco
nfi
gu
rati
on
file
11
8S
tep
2:
Ru
nn
ing
doxygen
12
9S
tep
3:
Docu
men
tin
gth
eso
urc
es14
10
Sp
ecia
ld
ocu
men
tati
on
blo
cks
15
11
Pu
ttin
gd
ocu
men
tati
on
aft
erm
emb
ers
19
12
Docu
men
tati
on
at
oth
erp
lace
s20
13
Sp
ecia
ld
ocu
men
tati
on
blo
cks
inP
yth
on
23
14
Sp
ecia
ld
ocu
men
tati
on
blo
cks
inV
HD
L24
15
Mod
ule
s26
16
Mem
ber
Gro
up
s29
17
Su
bp
agin
g30
18
Lin
ks
tow
ebp
ages
an
dm
ail
ad
dre
sses
37
19
Lin
ks
tocl
ass
es.
37
20
Lin
ks
tofi
les.
38
21
Lin
ks
tofu
nct
ion
s.38
Use
rM
an
ua
lfo
rD
ox
yg
en1
.5.6
,w
ritt
enb
yD
imit
riva
nH
eesc
hc ©
19
97
-20
06
CO
NT
EN
TS
2
22
Lin
ks
tovari
ab
les,
typ
edef
s,en
um
typ
es,en
um
valu
esan
dd
efin
es.
39
23
typ
edef
s.40
24
Ou
tpu
tF
orm
ats
41
25
Sim
ple
ali
ase
s42
26
Ali
ase
sw
ith
arg
um
ents
42
27
Nes
tin
gcu
stom
com
man
d43
IIR
efer
ence
Ma
nu
al
50
28
Form
at
59
29
Pro
ject
rela
ted
op
tion
s62
30
Bu
ild
rela
ted
op
tion
s65
31
Op
tion
sre
late
dto
warn
ing
an
dp
rogre
ssm
essa
ges
67
32
Inp
ut
rela
ted
op
tion
s68
33
Sou
rce
bro
wsi
ng
rela
ted
op
tion
s69
34
Alp
hab
etic
al
ind
exop
tion
s70
35
HT
ML
rela
ted
op
tion
s70
36
LaT
eXre
late
dop
tion
s73
37
RT
Fre
late
dop
tion
s74
38
Man
page
rela
ted
op
tion
s75
39
XM
Lre
late
dop
tion
s75
40
AU
TO
GE
ND
EF
rela
ted
op
tion
s76
41
PE
RL
MO
Dre
late
dop
tion
s76
42
Pre
pro
cess
or
rela
ted
op
tion
s76
43
Exte
rnal
refe
ren
ceop
tion
s77
Use
rM
an
ua
lfo
rD
ox
yg
en1
.5.6
,w
ritt
enb
yD
imit
riva
nH
eesc
hc ©
19
97
-20
06
48
the
buil
t-in
pre
pro
cess
or
conv
erte
dit
into
anem
pty
file
(wit
h>
256K
of
new
lines
).A
noth
erca
se
wher
eth
ism
ight
hap
pen
isif
you
hav
eli
nes
inyour
code
wit
hm
ore
than
256K
char
acte
rs.
Ifyou
hav
eru
nin
tosu
cha
case
and
wan
tm
eto
fix
it,
you
should
send
me
aco
de
frag
men
tth
at
trig
ger
sth
em
essa
ge.
To
work
around
the
pro
ble
m,
put
som
eli
ne-
bre
aks
into
your
file
,sp
lit
itup
into
smal
ler
par
ts,or
excl
ude
itfr
om
the
input
usi
ng
EX
CL
UD
E.
14.
Wh
enru
nn
ing
mak
ein
the
late
xd
irI
get
”T
eXca
paci
tyex
ceed
ed”.
Now
wh
at?
You
can
edit
the
texm
f.cf
gfi
leto
incr
ease
the
def
ault
val
ues
of
the
var
ious
buff
ers
and
then
run
”tex
confi
gin
it”.
15.
Wh
yare
dep
end
enci
esvia
ST
Lcl
ass
esn
ot
show
nin
the
dot
gra
ph
s?
Doxygen
isunw
are
of
the
ST
Lcl
asse
s,unle
ssth
eopti
on
BU
ILT
INS
TL
SU
PP
OR
Tis
turn
edon.
16.
Ih
ave
pro
ble
ms
get
tin
gth
ese
arc
hen
gin
eto
work
wit
hP
HP
5an
d/o
rw
ind
ow
s
Ple
ase
readthis
for
hin
tson
wher
eto
look.
17.
Can
Ico
nfi
gu
red
oxygen
from
the
com
man
dli
ne?
Notvia
com
man
dli
ne
opti
ons,
butdoxygen
can
read
fromstdin
,so
you
can
pip
eth
ings
thro
ugh
it.
Her
e’s
anex
ample
how
toover
ride
anopti
on
ina
confi
gura
tion
file
from
the
com
man
dli
ne
(ass
um
ing
aunix
envir
onm
ent)
:
(catDoxyfile;echo"PROJECT_NUMBER=1.0")|doxygen-
Ifm
ult
iple
opti
ons
wit
hth
esa
me
nam
ear
esp
ecifi
edth
endoxygen
wil
luse
the
last
one.
To
appen
d
toan
exis
ting
opti
on
you
can
use
the
+=
oper
ator.
18.
How
did
doxygen
get
its
nam
e?
Doxygen
got
its
nam
efr
om
pla
yin
gw
ith
the
word
sdocu
men
tati
on
and
gen
erat
or.
documentation->docs->dox
generator->gen
At
the
tim
eI
was
lookin
gin
tole
xan
dyac
c,w
her
ea
lot
of
thin
gs
star
tw
ith
”yy”,
soth
e”y
”sl
ipped
inan
dm
ade
thin
gs
pro
nounce
able
(the
pro
per
pro
nounce
men
tis
Docs
-ee-
gen
,so
wit
ha
long
”e”)
.
19.
Wh
at
was
the
reaso
nto
dev
elop
doxygen
?
Ionce
wro
tea
GU
Iw
idget
bas
edon
the
Qt
libra
ry(i
tis
stil
lav
aila
ble
at
http://qdbttabular.sourceforge.net/
and
mai
nta
ined
by
Sven
Mey
er).
Qt
had
nic
ely
gen
erat
eddocu
men
tati
on
(usi
ng
anin
tern
alto
ol
whic
hth
eydid
n’t
wan
tto
rele
ase)
and
I
wro
tesi
mil
ardocs
by
han
d.
This
was
anig
htm
are
tom
ainta
in,
soI
wan
ted
asi
mil
arto
ol.
Ilo
oked
atD
oc+
+but
that
just
was
n’t
good
enough
(it
did
n’t
support
signal
san
dsl
ots
and
did
not
hav
eth
e
Qt
look
and
feel
Ihad
gro
wn
toli
ke)
,so
Ist
arte
dto
wri
tem
yow
nto
ol.
..
Tro
uble
shooti
nh
Kn
ow
np
rob
lem
s:
•If
you
hav
epro
ble
ms
buil
din
gdoxygen
from
sourc
es,ple
ase
read
this
sect
ion
firs
t.
•D
oxygen
isnot
are
alco
mpil
er,it
isonly
ale
xic
alsc
anner
.T
his
mea
ns
that
itca
nan
dw
ill
not
det
ect
erro
rsin
your
sourc
eco
de.
Use
rM
an
ua
lfo
rD
ox
yg
en1
.5.6
,w
ritt
enb
yD
imit
riva
nH
eesc
hc ©
19
97
-20
06
47
or
you
can
useinstalldox
tose
tth
eli
nks
asfo
llow
s:
7.
Id
on
’tli
ke
the
qu
ick
ind
exth
at
isp
ut
ab
ove
each
HT
ML
page,
wh
at
do
Id
o?
You
can
dis
able
the
index
by
sett
ing
DIS
AB
LE
IND
EX
toY
ES
.T
hen
you
can
put
inyour
ow
n
hea
der
file
by
wri
ting
your
ow
nhea
der
and
feed
that
toH
TM
LH
EA
DE
R.
8.
Th
eover
all
HT
ML
ou
tpu
tlo
ok
sd
iffe
ren
t,w
hil
eI
on
lyw
an
ted
tou
sem
yow
nh
tml
hea
der
file
You
pro
bab
lyfo
rgot
toin
clude
the
style
shee
tdoxygen.css
that
doxygen
gen
erat
es.
You
can
incl
ude
this
by
putt
ing
<LINKHREF="doxygen.css"REL="stylesheet"TYPE="text/css">
inth
eH
EA
Dse
ctio
nof
the
HT
ML
pag
e.
9.
Wh
yd
oes
doxygen
use
Qt?
The
most
import
ant
reas
on
isto
hav
ea
pla
tform
abst
ract
ion
for
most
Unic
esan
dW
indow
sby
mea
ns
of
the
QF
ile,
QF
ileI
nfo
,Q
Dir
,Q
Dat
e,Q
Tim
ean
dQ
IOD
evic
ecl
asse
s.A
noth
erre
ason
isfo
rth
enic
e
and
bug
free
uti
lity
clas
ses,
like
QL
ist,
QD
ict,
QS
trin
g,
QA
rray
,Q
Tex
tStr
eam
,Q
Reg
Exp,
QX
ML
etc.
The
GU
Ifr
ont-
end
doxyw
izar
duse
sQ
tfo
r...
wel
l...
the
GU
I!
10.
How
can
Iex
clu
de
all
test
dir
ecto
ries
from
my
dir
ecto
rytr
ee?
Sim
ply
put
anex
clude
pat
tern
like
this
inth
eco
nfi
gura
tion
file
:
EXCLUDE_PATTERNS=*/test/*
11.
Doxygen
au
tom
ati
call
ygen
erate
sa
lin
kto
the
class
MyC
lass
som
ewh
ere
inth
eru
nn
ing
text.
How
do
Ip
reven
tth
at
at
ace
rtain
pla
ce?
Put
a%
infr
ont
of
the
clas
snam
e.L
ike
this
:%
MyC
lass
.D
oxygen
wil
lth
enre
move
the
%an
dkee
p
the
word
unli
nked
.
12.
My
favou
rite
pro
gra
mm
ing
lan
gu
age
isX
.C
an
Ist
ill
use
doxygen
?
No,
not
assu
ch;
doxygen
nee
ds
tounder
stan
dth
est
ruct
ure
of
what
itre
ads.
Ifyou
don’t
min
d
spen
din
gso
me
tim
eon
it,th
ere
are
sever
alopti
ons:
•If
the
gra
mm
arof
Xis
close
toC
or
C+
+,th
enit
ispro
bab
lynot
too
har
dto
twea
ksr
c/sc
anner
.l
abit
soth
ela
nguag
eis
support
ed.
This
isdone
for
all
oth
erla
nguag
esdir
ectl
ysu
pport
edby
doxygen
(i.e
.Ja
va,
IDL
,C
#,P
HP
).
•If
the
gra
mm
arof
Xis
som
ewhat
dif
fere
nt
than
you
can
wri
tean
input
fil-
ter
that
tran
slat
esX
into
som
ethin
gsi
mil
aren
ough
toC
/C+
+fo
rdoxygen
to
under
stan
d(t
his
appro
ach
ista
ken
for
VB
,O
bje
ctP
asca
l,an
dJa
vas
crip
t,se
e
http://www.stack.nl/∼dimitri/doxygen/download.html#helpers
).
•If
the
gra
mm
aris
com
ple
tely
dif
fere
nt
one
could
wri
tea
par
ser
for
Xan
dw
rite
abac
ken
dth
at
pro
duce
sa
sim
ilar
synta
xtr
eeas
isdone
by
src/
scan
ner
.l(a
nd
also
by
src/
tagre
ader
.cpp
whil
e
read
ing
tag
file
s).
13.
Hel
p!
Iget
the
cryp
tic
mes
sage
”in
pu
tb
uff
erover
flow
,ca
n’t
enla
rge
bu
ffer
bec
au
sesc
an
ner
use
sR
EJE
CT
”
This
erro
rhap
pen
sw
hen
doxygen
’sle
xic
alsc
anner
has
aru
leth
atm
atch
esm
ore
than
256K
of
input
char
acte
rsin
one
go.
I’ve
seen
this
hap
pen
ing
on
aver
yla
rge
gen
erat
edfi
le(>
256K
lines
),w
her
e
Use
rM
an
ua
lfo
rD
ox
yg
en1
.5.6
,w
ritt
enb
yD
imit
riva
nH
eesc
hc ©
19
97
-20
06
CO
NT
EN
TS
3
44
Dot
op
tion
s77
45
Sea
rch
engin
eop
tion
s79
46
Intr
od
uct
ion
81
47
\ad
dto
gro
up<
nam
e>[(
titl
e)]
84
48
\call
gra
ph
84
49
\call
ergra
ph
84
50
\cate
gory<
nam
e>[<
hea
der
-file>
][<
hea
der
-nam
e>]
85
51
\cla
ss<
nam
e>[<
hea
der
-file>
][<
hea
der
-nam
e>]
85
52
\def<
nam
e>85
53
\def
gro
up<
nam
e>(g
rou
pti
tle)
86
54
\dir
[<p
ath
fragm
ent>
]86
55
\en
um<
nam
e>86
56
\exam
ple<
file
-nam
e>87
57
\file
[<n
am
e>]
87
58
\fn
(fu
nct
ion
dec
lara
tion
)88
59
\hea
der
file<
hea
der
-file>
[<h
ead
er-n
am
e>]
88
60
\hid
ein
itia
lize
r89
61
\in
gro
up
(<gro
up
nam
e>[<
gro
up
nam
e><
gro
up
nam
e>])
89
62
\in
terf
ace<
nam
e>[<
hea
der
-file>
][<
hea
der
-nam
e>]
89
63
\in
tern
al
89
64
\main
page
[(ti
tle)
]89
65
\nam
e(h
ead
er)
90
66
\nam
esp
ace<
nam
e>90
Use
rM
an
ua
lfo
rD
ox
yg
en1
.5.6
,w
ritt
enb
yD
imit
riva
nH
eesc
hc ©
19
97
-20
06
CO
NT
EN
TS
4
67
\nosu
bgro
up
ing
90
68
\over
load
[(fu
nct
ion
dec
lara
tion
)]90
69
\pack
age<
nam
e>91
70
\page<
nam
e>(t
itle
)91
71
\pro
per
ty(q
uali
fied
pro
per
tyn
am
e)92
72
\pro
toco
l<
nam
e>[<
hea
der
-file>
][<
hea
der
-nam
e>]
92
73
\rel
ate
s<
nam
e>92
74
\rel
ate
sals
o<
nam
e>93
75
\sh
ow
init
iali
zer
93
76
\str
uct<
nam
e>[<
hea
der
-file>
][<
hea
der
-nam
e>]
93
77
\typ
edef
(typ
edef
dec
lara
tion
)93
78
\un
ion<
nam
e>[<
hea
der
-file>
][<
hea
der
-nam
e>]
93
79
\var
(vari
ab
led
ecla
rati
on
)94
80
\wea
kgro
up<
nam
e>[(
titl
e)]
94
81
\att
enti
on{
att
enti
on
text}
94
82
\au
thor{
list
of
au
thors
}94
83
\bri
ef{
bri
efd
escr
ipti
on}
95
84
\bu
g{
bu
gd
escr
ipti
on}
95
85
\con
d[<
sect
ion
-lab
el>
]95
86
\date
{d
ate
des
crip
tion}
96
87
\dep
reca
ted{
des
crip
tion}
96
88
\det
ail
s{d
etail
edd
ecri
pti
on}
96
89
\els
e96
Use
rM
an
ua
lfo
rD
ox
yg
en1
.5.6
,w
ritt
enb
yD
imit
riva
nH
eesc
hc ©
19
97
-20
06
46
The
new
and
easi
est
way
isto
add
one
com
men
tblo
ckw
ith
a\
cond
com
man
dat
the
star
tan
done
com
men
tblo
ckw
ith
a\e
ndco
nd
com
man
dat
the
end
of
the
pie
ceof
code
that
should
be
ignore
d.
This
should
be
wit
hin
the
sam
efi
leof
cours
e.
But
you
can
also
use
Doxygen
’spre
pro
cess
or
for
this
:If
you
put
#ifndefDOXYGEN_SHOULD_SKIP_THIS
/*codethatmustbeskippedbyDoxygen
*/
#endif/*DOXYGEN_SHOULD_SKIP_THIS*/
around
the
blo
cks
that
should
be
hid
den
and
put:
PREDEFINED=DOXYGEN_SHOULD_SKIP_THIS
inth
eco
nfi
gfi
leth
enal
lblo
cks
should
be
skip
ped
by
Doxygen
aslo
ng
asPREPROCESSING=
YES
.
5.
How
can
Ich
an
ge
wh
at
isaft
erth
e#include
inth
ecl
ass
docu
men
tati
on
?
Inm
ost
case
syou
can
use
ST
RIP
FR
OM
INC
PAT
Hto
stri
pa
use
rdefi
ned
par
tof
apat
h.
You
can
also
docu
men
tyour
clas
sas
foll
ow
s
/*!\classMyClassNameinclude.hpath/include.h
* *DocsforMyClassName
*/
To
mak
edoxygen
put
#include<path/include.h>
inth
edocu
men
tati
on
of
the
clas
sM
yC
lass
Nam
ere
gar
dle
ssof
the
nam
eof
the
actu
alhea
der
file
in
whic
hth
edefi
nit
ion
of
MyC
lass
Nam
eis
conta
ined
.
Ifyou
wan
tdoxygen
tosh
ow
that
the
incl
ude
file
should
be
incl
uded
usi
ng
quote
sin
stea
dof
angle
bra
cket
syou
should
type:
/*!\classMyClassNamemyhdr.h"path/myhdr.h"
* *DocsforMyClassName
*/
6.
How
can
Iu
seta
gfi
les
inco
mb
inati
on
wit
hco
mp
ress
edH
TM
L?
Ifyou
wan
tto
refe
rfr
om
one
com
pre
ssed
HT
ML
filea.chm
toan
oth
erco
mpre
ssed
HT
ML
file
call
edb.chm
,th
eli
nk
ina.chm
must
hav
eth
efo
llow
ing
form
at:
<ahref="b.chm::/file.html">
Unfo
rtunat
ely
this
only
work
sif
both
com
pre
ssed
HT
ML
file
sar
ein
the
sam
edir
ecto
ry.
As
are
sult
you
must
renam
eth
egen
erat
edindex.chm
file
sfo
ral
lpro
ject
sin
toso
met
hin
guniq
ue
and
put
all.chm
file
sin
one
dir
ecto
ry.
Suppose
you
hav
ea
pro
ject
are
ferr
ing
toa
pro
ject
busi
ng
tag
fileb.tag
,th
enyou
could
renam
e
theindex.chm
for
pro
ject
ain
toa.chm
and
theindex.chm
for
pro
ject
bin
tob.chm
.In
the
confi
gura
tion
file
for
pro
ject
ayou
wri
te:
TAGFILES=b.tag=b.chm::
Use
rM
an
ua
lfo
rD
ox
yg
en1
.5.6
,w
ritt
enb
yD
imit
riva
nH
eesc
hc ©
19
97
-20
06
45
Inso
me
(hopef
ull
yex
cepti
onal
)ca
ses
you
may
hav
eth
edocu
men
tati
on
gen
erat
edby
doxygen
,but
not
the
sourc
esnor
ata
gfi
le.
Inth
isca
seyou
can
use
the
doxyta
gto
ol
toex
trac
ta
tag
file
from
the
gen
erat
ed
HT
ML
sourc
es.
Anoth
erca
sew
her
eyou
should
use
doxyta
gis
ifyou
wan
tto
crea
tea
tag
file
for
the
Qt
docu
men
tati
on.
The
tooldoxytag
dep
ends
on
the
par
ticu
lar
stru
cture
of
the
gen
erat
edoutp
utan
don
som
esp
ecia
lm
arker
s
that
are
gen
erat
edby
doxygen
.S
ince
this
type
of
extr
acti
on
isbri
ttle
and
erro
r-pro
ne
Isu
gges
tyou
only
use
this
appro
ach
ifth
ere
isno
alte
rnat
ive.
The
doxyta
gto
ol
may
even
bec
om
eobso
lete
inth
efu
ture
.
Fre
quen
tly
Ask
edQ
ues
tions
1.
How
toget
info
rmati
on
on
the
ind
exp
age
inH
TM
L?
You
should
use
the\
mai
npag
eco
mm
and
insi
de
aco
mm
ent
blo
ckli
ke
this
:
/*!\mainpageMyPersonalIndexPage
* *\sectionintro_secIntroduction
* *Thisistheintroduction.
* *\sectioninstall_secInstallation
* *\subsectionstep1Step1:Openingthebox
* *etc...
*/
2.
Hel
p,so
me/
all
of
the
mem
ber
sof
my
class
/fi
le/
nam
esp
ace
are
not
docu
men
ted
?
Chec
kth
efo
llow
ing:
(a)
Isyour
clas
s/
file
/nam
espac
edocu
men
ted?
Ifnot,
itw
ill
not
be
extr
acte
dfr
om
the
sourc
es
unle
ssEXTRACTALL
isse
ttoYES
inth
eco
nfi
gfi
le.
(b)
Are
the
mem
ber
spri
vat
e?If
so,
you
must
setEXTRACTPRIVATE
toYES
tom
ake
them
appea
rin
the
docu
men
tati
on.
(c)
Isth
ere
afu
nct
ion
mac
roin
your
clas
sth
atdoes
not
end
wit
ha
sem
icolo
n(e
.g.
MY
-
MA
CR
O()
)?If
soth
enyou
hav
eto
inst
ruct
doxygen
’spre
pro
cess
or
tore
move
it.
This
typic
ally
boil
sdow
nto
the
foll
ow
ing
sett
ings
inth
eco
nfi
gfi
le:
ENABLE_PREPROCESSING
=YES
MACRO_EXPANSION
=YES
EXPAND_ONLY_PREDEF
=YES
PREDEFINED
=MY_MACRO()=
Ple
ase
read
the
pre
pro
cess
ing
sect
ion
of
the
man
ual
for
more
info
rmat
ion.
3.
Wh
enI
set
EX
TR
AC
TA
LL
toN
On
on
eof
my
fun
ctio
ns
are
show
nin
the
docu
men
tati
on
.
Inord
erfo
rglo
bal
funct
ions,
var
iable
s,en
um
s,ty
ped
efs,
and
defi
nes
tobe
docu
men
ted
you
should
docu
men
tth
efi
lein
whic
hth
ese
com
man
ds
are
loca
ted
usi
ng
aco
mm
ent
blo
ckco
nta
inin
ga\
file
(or
@fi
le)
com
man
d.
Alt
ernat
ivel
y,you
can
putal
lm
ember
sin
agro
up
(or
module
)usi
ng
the\
ingro
up
com
man
dan
dth
en
docu
men
tth
egro
up
usi
ng
aco
mm
ent
blo
ckco
nta
inin
gth
e\d
efgro
up
com
man
d.
For
mem
ber
funct
ions
or
funct
ions
that
are
par
tof
anam
espac
eyou
should
docu
men
tei
ther
the
clas
s
or
nam
espac
e.
4.
How
can
Im
ak
ed
oxygen
ign
ore
som
eco
de
fragm
ent?
Use
rM
an
ua
lfo
rD
ox
yg
en1
.5.6
,w
ritt
enb
yD
imit
riva
nH
eesc
hc ©
19
97
-20
06
CO
NT
EN
TS
5
90
\els
eif<
sect
ion
-lab
el>
97
91
\en
dco
nd
97
92
\en
dif
97
93
\exce
pti
on<
exce
pti
on
-ob
ject>
{ex
cep
tion
des
crip
tion}
97
94
\if<
sect
ion
-lab
el>
97
95
\ifn
ot<
sect
ion
-lab
el>
98
96
\in
vari
an
t{
des
crip
tion
of
invari
an
t}
98
97
\note
{te
xt}
99
98
\par
[(p
ara
gra
ph
titl
e)]{
para
gra
ph}
99
99
\para
m<
para
met
er-n
am
e>{
para
met
erd
escr
ipti
on}
99
100\t
para
m<
tem
pla
te-p
ara
met
er-n
am
e>{
des
crip
tion}
100
101\p
ost{
des
crip
tion
of
the
post
con
dit
ion}
100
102\p
re{
des
crip
tion
of
the
pre
con
dit
ion}
100
103\r
emark
s{
rem
ark
text}
100
104\r
etu
rn{
des
crip
tion
of
the
retu
rnvalu
e}
101
105\r
etval<
retu
rnvalu
e>{
des
crip
tion}
101
106\s
a{
refe
ren
ces}
101
107\s
ee{
refe
ren
ces}
101
108\s
ince
{te
xt}
101
109\t
est{
para
gra
ph
des
crib
ing
ate
stca
se}
101
110\t
hro
w<
exce
pti
on
-ob
ject>
{ex
cep
tion
des
crip
tion}
102
111\t
od
o{
para
gra
ph
des
crib
ing
wh
at
isto
be
don
e}
102
112\v
ersi
on{
ver
sion
nu
mb
er}
102
Use
rM
an
ua
lfo
rD
ox
yg
en1
.5.6
,w
ritt
enb
yD
imit
riva
nH
eesc
hc ©
19
97
-20
06
CO
NT
EN
TS
6
113\w
arn
ing{
warn
ing
mes
sage}
102
114\x
refi
tem<
key>
”(h
ead
ing)”
”(l
ist
titl
e)”{
text}
102
115\a
dd
ind
ex(t
ext)
103
116\a
nch
or<
word>
103
117\e
nd
lin
k103
118\l
ink<
lin
k-o
bje
ct>
103
119\r
ef<
nam
e>[”
(tex
t)”]
104
120\s
ub
page<
nam
e>[”
(tex
t)”]
104
121\s
ecti
on<
sect
ion
-nam
e>(s
ecti
on
titl
e)105
122\s
ub
sect
ion<
sub
sect
ion
-nam
e>(s
ub
sect
ion
titl
e)105
123\s
ub
sub
sect
ion<
sub
sub
sect
ion
-nam
e>(s
ub
sub
sect
ion
titl
e)105
124\p
ara
gra
ph<
para
gra
ph
-nam
e>(p
ara
gra
ph
titl
e)105
125\d
on
tin
clu
de<
file
-nam
e>106
126\i
ncl
ud
e<
file
-nam
e>106
127\i
ncl
ud
elin
eno<
file
-nam
e>107
128\l
ine
(p
att
ern
)107
129\s
kip
(p
att
ern
)107
130\s
kip
lin
e(
patt
ern
)107
131\u
nti
l(
patt
ern
)108
132\v
erb
incl
ud
e<
file
-nam
e>108
133\h
tmli
ncl
ud
e<
file
-nam
e>108
134\a<
word>
108
135\a
rg{
item
-des
crip
tion}
109
Use
rM
an
ua
lfo
rD
ox
yg
en1
.5.6
,w
ritt
enb
yD
imit
riva
nH
eesc
hc ©
19
97
-20
06
44
Ifan
yof
the
above
apply
,you
can
use
doxygen
’sta
gfi
lem
echan
ism
.A
tag
file
isbas
ical
lya
com
pac
t
repre
senta
tion
of
the
enti
ties
found
inth
eex
tern
also
urc
es.
Doxygen
can
both
gen
erat
ean
dre
adta
gfi
les.
To
gen
erat
ea
tag
file
for
your
pro
ject
,si
mply
put
the
nam
eof
the
tag
file
afte
rth
eG
EN
ER
AT
ET
AG
FIL
E
opti
on
inth
eco
nfi
gura
tion
file
.
To
com
bin
eth
eoutp
ut
of
one
or
more
exte
rnal
pro
ject
sw
ith
your
ow
npro
ject
you
should
spec
ify
the
nam
e
of
the
tag
file
saf
ter
the
TA
GF
ILE
Sopti
on
inth
eco
nfi
gura
tion
file
.
Ata
gfi
ledoes
not
conta
inin
form
atio
nab
out
wher
eth
eex
tern
aldocu
men
tati
on
islo
cate
d.
This
could
be
a
dir
ecto
ryor
anU
RL
.S
ow
hen
you
incl
ude
ata
gfi
leyou
hav
eto
spec
ify
wher
eth
eex
tern
aldocu
men
tati
on
islo
cate
d.
Ther
ear
etw
ow
ays
todo
this
:
At
con
figu
rati
on
tim
e:ju
stas
sign
the
loca
tion
of
the
outp
ut
toth
eta
gfi
les
spec
ified
afte
rth
eT
AG
FIL
ES
confi
gura
tion
opti
on.
Ifyou
use
are
lati
ve
pat
hit
should
be
rela
tive
wit
hre
spec
tto
the
dir
ecto
ry
wher
eth
eH
TM
Loutp
ut
of
your
pro
ject
isgen
erat
ed.
Aft
erco
mp
ile
tim
e:if
you
do
notas
sign
alo
cati
on
toa
tag
file
,doxygen
wil
lgen
erat
edum
my
links
for
all
exte
rnal
HT
ML
refe
rence
s.It
wil
lal
sogen
erat
ea
per
lsc
ript
call
edin
stal
ldox
inth
eH
TM
Loutp
ut
dir
ecto
ry.
This
scri
pt
should
be
run
tore
pla
ceth
edum
my
links
wit
hre
alli
nks
for
all
gen
erat
ed
HT
ML
file
s.
Exam
ple
:
Suppose
you
hav
ea
pro
jectproj
that
use
stw
oex
tern
alpro
ject
sca
lledext1
andext2
.T
he
dir
ecto
ry
stru
cture
looks
asfo
llow
s:
<root>
+-proj
|+-html
HTMLoutputdirectoryforproj
|+-src
sourcesforproj
||-proj.cpp
+-ext1
|+-html
HTMLoutputdirectoryforext1
||-ext1.tag
tagfileforext1
+-ext2
|+-html
HTMLoutputdirectoryforext2
||-ext2.tag
tagfileforext2
|-proj.cfg
doxygenconfigurationfileforproj
|-ext1.cfg
doxygenconfigurationfileforext1
|-ext2.cfg
doxygenconfigurationfileforext2
Then
the
rele
van
tpar
tsof
the
confi
gura
tion
file
slo
ok
asfo
llow
s:
pro
j.cf
g:
OUTPUT_DIRECTORY
=proj
INPUT
=proj/src
TAGFILES
=ext1/ext1.tag=../../ext1/html\
ext2/ext2.tag=../../ext2/html
ext1
.cfg
:
OUTPUT_DIRECTORY
=ext1
GENERATE_TAGFILE
=ext1/ext1.tag
ext2
.cfg
:
OUTPUT_DIRECTORY
=ext2
GENERATE_TAGFILE
=ext2/ext2.tag
Use
rM
an
ua
lfo
rD
ox
yg
en1
.5.6
,w
ritt
enb
yD
imit
riva
nH
eesc
hc ©
19
97
-20
06
43
wher
eth
eco
mm
and
wit
ha
single
argum
ent
would
stil
lw
ork
assh
ow
nbef
ore
.
Ali
ases
can
also
be
expre
ssed
inte
rms
of
oth
eral
iase
s,e.
g.
anew
com
man
d\
rem
inder
can
be
expre
ssed
asa\
xre
fite
mvia
anin
term
edia
te\x
refl
ist
com
man
das
foll
ow
s:
ALIASES+=xreflist{3}="\xrefitem\1\"\2\"\"\3\""\
ALIASES+=reminder="\xreflist{reminders,Reminder,Reminders}"\
Note
that
iffo
ral
iase
sw
ith
more
than
one
argum
ent
aco
mm
ais
use
das
ase
par
ator,
ifyou
wan
tto
put
a
com
ma
insi
de
the
com
man
d,you
wil
lnee
dto
esca
pe
itw
ith
abac
ksl
ash,i.
e.
\l{SomeClass,Sometext\,withanescapedcomma}
giv
enth
eal
ias
defi
nit
ion
of\
lin
the
exam
ple
above.
27
Nes
tin
gcu
sto
mco
mm
an
d
You
can
use
com
man
ds
asar
gum
ents
of
alia
ses,
incl
udin
gco
mm
ands
defi
ned
usi
ng
alia
ses.
As
anex
ample
consi
der
the
foll
ow
ing
alia
sdefi
nit
ions
ALIASES+=Bold{1}="<b>\1</b>"
ALIASES+=Emph{1}="<em>\1</em>"
Insi
de
aco
mm
ent
blo
ckyou
can
now
use
:
/**Thisisa\Bold{bold\Emph{and}Emphasized}textfragment.*/
whic
hw
ill
expan
dto
/**Thisisa<b>bold<em>and</em>Emphasized</b>textfragment.*/
Lin
kto
exte
rnal
docu
men
tati
onIf
your
pro
ject
dep
ends
on
exte
rnal
libra
ries
or
tools
,th
ere
are
sever
al
reas
ons
tonot
incl
ude
all
sourc
esfo
rth
ese
wit
hev
ery
run
of
doxygen
:
Dis
ksp
ace
:S
om
edocu
men
tati
on
may
be
avai
lable
outs
ide
of
the
outp
ut
dir
ecto
ryof
doxygen
alre
ady,
for
inst
ance
som
ewher
eon
the
web
.Y
ou
may
wan
tto
link
toth
ese
pag
esin
stea
dof
gen
erat
ing
the
docu
men
tati
on
inyour
loca
loutp
ut
dir
ecto
ry.
Com
pil
ati
on
spee
d:
Exte
rnal
pro
ject
sty
pic
ally
hav
ea
dif
fere
nt
updat
efr
equen
cyfr
om
your
ow
npro
ject
.
Itdoes
notm
ake
much
sense
tole
tdoxygen
par
seth
eso
urc
esfo
rth
ese
exte
rnal
pro
ject
over
and
over
agai
n,ev
enif
noth
ing
has
chan
ged
.
Mem
ory
:F
or
ver
yla
rge
sourc
etr
ees,
lett
ing
doxygen
par
seal
lso
urc
esm
aysi
mply
take
too
much
of
your
syst
em’s
mem
ory
.B
ydiv
idin
gth
eso
urc
esin
tose
ver
al”p
ackag
es”,
the
sourc
esof
one
pac
kag
eca
n
be
par
sed
by
doxygen
,whil
eal
loth
erpac
kag
esth
atth
ispac
kag
edep
ends
on,a
reli
nked
inex
tern
ally
.
This
saves
alo
tof
mem
ory
.
Avail
ab
ilit
y:
For
som
epro
ject
sth
atar
edocu
men
ted
wit
hdoxygen
,th
eso
urc
esm
ayju
stnot
be
avai
lable
.
Cop
yri
gh
tis
sues
:If
the
exte
rnal
pac
kag
ean
dit
sdocu
men
tati
on
are
copyri
ght
som
eone
else
,it
may
be
bet
ter
-or
even
nec
essa
ry-
tore
fere
nce
itra
ther
than
incl
ude
aco
py
of
itw
ith
your
pro
ject
’sdoc-
um
enta
tion.
When
the
auth
or
forb
ids
redis
trib
uti
on,
this
isnec
essa
ry.
Ifth
eau
thor
requir
esco
m-
pli
ance
wit
hso
me
lice
nse
condit
ion
asa
pre
condit
ion
of
redis
trib
uti
on,
and
you
do
not
wan
tto
be
bound
by
those
condit
ions,
refe
rrin
gto
thei
rco
py
of
thei
rdocu
men
tati
on
ispre
fera
ble
toin
cludin
ga
copy.
Use
rM
an
ua
lfo
rD
ox
yg
en1
.5.6
,w
ritt
enb
yD
imit
riva
nH
eesc
hc ©
19
97
-20
06
CO
NT
EN
TS
7
136\b
<w
ord>
109
137\c<
word>
109
138\c
od
e110
139\c
op
yd
oc<
lin
k-o
bje
ct>
110
140\c
op
yb
rief<
lin
k-o
bje
ct>
110
141\c
op
yd
etail
s<
lin
k-o
bje
ct>
110
142\d
ot
110
143\m
sc111
144\d
otfi
le<
file>
[”ca
pti
on
”]
112
145\e<
word>
112
146\e
m<
word>
112
147\e
nd
cod
e113
148\e
nd
dot
113
149\e
nd
msc
113
150\e
nd
htm
lon
ly113
151\e
nd
late
xon
ly113
152\e
nd
man
on
ly113
153\e
nd
ver
bati
m113
154\e
nd
xm
lon
ly114
155\f
$114
156\f
[114
157\f
]114
158\f{
envir
on
men
t}{
114
Use
rM
an
ua
lfo
rD
ox
yg
en1
.5.6
,w
ritt
enb
yD
imit
riva
nH
eesc
hc ©
19
97
-20
06
CO
NT
EN
TS
8
159\f}
114
160\h
tmlo
nly
114
161\i
mage<
form
at>
<fi
le>
[”ca
pti
on
”]
[<si
zein
dic
ati
on>
=<
size>
]115
162\l
ate
xon
ly115
163\m
an
on
ly116
164\l
i{
item
-des
crip
tion}
116
165\n
116
166\p
<w
ord>
117
167\v
erb
ati
m117
168\x
mlo
nly
117
169\\
117
170\@
117
171\∼
[Lan
gu
ageI
d]
118
172\&
118
173\$
118
174\#
118
175<
118
176>
118
177\%
118
178P
HP
on
lyco
mm
an
ds
119
III
Dev
elo
per
sM
an
ua
l1
24
179U
sin
gth
eP
erl
Mod
ule
ou
tpu
tfo
rmat.
128
180U
sin
gth
eP
erl
Mod
ule
-base
dL
aT
eXgen
erato
r.128
Use
rM
an
ua
lfo
rD
ox
yg
en1
.5.6
,w
ritt
enb
yD
imit
riva
nH
eesc
hc ©
19
97
-20
06
42
25
Sim
ple
ali
ase
s
The
sim
ple
stfo
rmof
anal
ias
isa
sim
ple
subst
ituti
on
of
the
form
name=value
For
exam
ple
defi
nin
gth
efo
llow
ing
alia
s:
ALIASES+=sideeffect="\parSideEffects:\n"
wil
lal
low
you
toput
the
com
man
d\
sidee
ffec
t(o
r@
sidee
ffec
t)in
the
docu
men
tati
on,
whic
hw
ill
resu
ltin
ause
r-defi
ned
par
agra
ph
wit
hhea
din
gS
ide
Eff
ects
:.
Note
that
you
can
put\
n’s
inth
eval
ue
par
tof
anal
ias
toin
sert
new
lines
.
Als
onote
that
you
can
redefi
ne
exis
ting
spec
ial
com
man
ds
ifyou
wis
h.
Som
eco
mm
ands,
such
as\x
refi
tem
are
des
igned
tobe
use
din
com
bin
atio
nw
ith
alia
ses.
26
Ali
ase
sw
ith
arg
um
ents
Ali
ases
can
also
hav
eone
or
more
argum
ents
.In
the
alia
sdefi
nit
ion
you
then
nee
dto
spec
ify
the
num
ber
of
argum
ents
bet
wee
ncu
rly
bra
ces.
Inth
eval
ue
par
tof
the
defi
nit
ion
you
can
pla
ce\
xm
arker
s,w
her
e’x
’
repre
sents
the
argum
ent
num
ber
star
ting
wit
h1.
Her
eis
anex
ample
of
anal
ias
defi
nit
ion
wit
ha
single
argum
ent:
ALIASES+=l{1}="\ref\1"
Insi
de
aco
mm
ent
blo
ckyou
can
use
itas
foll
ow
s
/**See\l{SomeClass}formoreinformation.*/
whic
hw
ould
be
the
sam
eas
wri
ting
/**See\refSomeClassformoreinformation.*/
Note
that
you
can
over
load
anal
ias
by
aver
sion
wit
hm
ult
iple
argum
ents
,fo
rin
stan
ce:
ALIASES+=l{1}="\ref\1"
ALIASES+=l{2}="\ref\1\"\2\""
Note
that
the
quote
sin
side
the
alia
sdefi
nit
ion
hav
eto
be
esca
ped
wit
ha
bac
ksl
ash.
Wit
hth
ese
alia
sdefi
nit
ions,
we
can
wri
te
/**See\l{SomeClass,SomeText}formoreinformation.*/
insi
de
the
com
men
tblo
ckan
dit
wil
lex
pan
dto
/**See\refSomeClass"SomeText"formoreinformation.*/
Use
rM
an
ua
lfo
rD
ox
yg
en1
.5.6
,w
ritt
enb
yD
imit
riva
nH
eesc
hc ©
19
97
-20
06
41
floatx;
/*!Theycoordinate*/
floaty;
};
/*!CreatesatypenameforCoordStruct*/
typedefCoordStructCoord;
/*!
*Thisfunctionreturnstheadditionof\ac1and\ac2,i.e:
*(c1.x+c2.x,c1.y+c2.y)
*/
Coordadd(Coordc1,Coordc2)
{ }
Outp
ut
Form
ats
24
Ou
tpu
tF
orm
ats
The
foll
ow
ing
outp
ut
form
ats
are
dir
ectl
ysu
pport
edby
doxygen
:
HT
ML
Gen
erat
edifGENERATEHTML
isse
ttoYES
inth
eco
nfi
gura
tion
file
.
LAT
EX
Gen
erat
edifGENERATELATEX
isse
ttoYES
inth
eco
nfi
gura
tion
file
.
Man
pages
Gen
erat
edifGENERATEMAN
isse
ttoYES
inth
eco
nfi
gura
tion
file
.
RT
FG
ener
ated
ifGENERATERTF
isse
ttoYES
inth
eco
nfi
gura
tion
file
.
Note
that
the
RT
Foutp
ut
pro
bab
lyonly
looks
nic
ew
ith
Mic
roso
ft’s
Word
97.
Ifyou
hav
esu
cces
s
wit
hoth
erpro
gra
ms,
ple
ase
let
me
know
.
XM
LG
ener
ated
ifGENERATEXML
isse
ttoYES
inth
eco
nfi
gura
tion
file
.
Note
that
the
XM
Loutp
ut
isst
ill
under
dev
elopm
ent.
The
foll
ow
ing
outp
ut
form
ats
are
indir
ectl
ysu
pport
edby
doxygen
:
Com
pil
edH
TM
LH
elp
(a.k
.a.
Win
dow
s98
hel
p)
Gen
erat
edby
Mic
roso
ft’s
HT
ML
Hel
pw
ork
shop
from
the
HT
ML
outp
ut
ifGENERATEHTMLHELP
isse
ttoYES
.
Post
Scr
ipt
Gen
erat
edfr
om
the
LAT E
Xoutp
ut
by
runnin
gmakeps
inth
eoutp
ut
dir
ecto
ry.
For
the
bes
t
resu
ltsPDFHYPERLINKS
should
be
set
toNO
.
PD
FG
ener
ated
from
the
LAT E
Xoutp
ut
by
runnin
gmakepdf
inth
eoutp
ut
dir
ecto
ry.
To
impro
ve
the
PD
Foutp
ut,
you
typic
ally
would
wan
tto
enab
leth
euse
ofpdflatex
by
sett
ing
US
EP
DF
LA
TE
X
toYES
inth
eco
nfi
gura
tion
file
.In
ord
erto
get
hyper
links
inth
eP
DF
file
you
also
nee
dto
enab
le
PD
FH
YP
ER
LIN
KS
.
Cust
om
Com
man
dsD
oxygen
pro
vid
esa
larg
enum
ber
of
spec
ial
com
man
ds,
XM
Lco
mm
ands,
and
HT
ML
com
man
ds.
that
can
be
use
dto
enhan
ceor
stru
cture
the
docu
men
tati
on
insi
de
aco
mm
ent
blo
ck.
Ifyou
for
som
ere
ason
hav
ea
nee
dto
defi
ne
new
com
man
ds
you
can
do
soby
mea
ns
of
anali
as
defi
nit
ion.
The
defi
nit
ion
of
anal
ias
should
be
spec
ified
inth
eco
nfi
gura
tion
file
usi
ng
the
AL
IAS
ES
confi
gura
tion
tag.
Use
rM
an
ua
lfo
rD
ox
yg
en1
.5.6
,w
ritt
enb
yD
imit
riva
nH
eesc
hc ©
19
97
-20
06
CO
NT
EN
TS
9
181P
erl
Mod
ule
docu
men
tati
on
form
at.
130
182D
ata
stru
ctu
red
escr
ibin
gth
eP
erl
Mod
ule
docu
men
tati
on
tree
.130
Use
rM
an
ua
lfo
rD
ox
yg
en1
.5.6
,w
ritt
enb
yD
imit
riva
nH
eesc
hc ©
19
97
-20
06
CO
NT
EN
TS
1
Intr
od
uct
ion
Doxygen
isa
docu
men
tati
on
syst
emfo
rC
++
,C
,Ja
va,
Obje
ctiv
e-C
,P
yth
on,
IDL
(Corb
aan
dM
icro
soft
flav
ors
),F
ort
ran,V
HD
L,P
HP,
C#,an
dto
som
eex
tent
D.
Itca
nhel
pyou
inth
ree
way
s:
1.
Itca
ngen
erat
ean
on-l
ine
docu
men
tati
on
bro
wse
r(i
nH
TM
L)
and/o
ran
off
-lin
ere
fere
nce
man
ual
(in
LAT E
X)
from
ase
tof
docu
men
ted
sourc
efi
les.
Th
ere
isal
sosu
pport
for
gen
erat
ing
outp
ut
inR
TF
(MS
-Word
),P
ost
Scr
ipt,
hyper
lin
ked
PD
F,
com
pre
ssed
HT
ML
,an
dU
nix
man
pag
es.
The
docu
men
-
tati
on
isex
trac
ted
dir
ectl
yfr
om
the
sourc
es,
whic
hm
akes
itm
uch
easi
erto
kee
pth
edocu
men
tati
on
consi
sten
tw
ith
the
sourc
eco
de.
2.
You
can
confi
gure
doxygen
toex
trac
tth
eco
de
stru
cture
from
undocu
men
ted
sourc
efi
les.
This
isver
y
use
ful
toquic
kly
find
your
way
inla
rge
sourc
edis
trib
uti
ons.
You
can
also
vis
ual
ize
the
rela
tions
bet
wee
nth
evar
ious
elem
ents
by
mea
ns
of
incl
ude
dep
enden
cygra
phs,
inher
itan
cedia
gra
ms,
and
coll
abora
tion
dia
gra
ms,
whic
har
eal
lgen
erat
edau
tom
atic
ally
.
3.
You
can
even
‘abuse
’doxygen
for
crea
ting
norm
aldocu
men
tati
on
(as
Idid
for
this
man
ual
).
Doxygen
isdev
eloped
underLinux
and
Mac
OS
X,but
isse
t-up
tobe
hig
hly
port
able
.A
sa
resu
lt,it
runs
on
most
oth
erU
nix
flav
ors
asw
ell.
Furt
her
more
,ex
ecuta
ble
sfo
rW
indow
sar
eav
aila
ble
.
This
man
ual
isdiv
ided
into
thre
epar
ts,ea
chof
whic
his
div
ided
into
sever
alse
ctio
ns.
The
firs
tpar
tfo
rms
ause
rm
anual
:
•S
ecti
on
Inst
alla
tion
dis
cuss
eshow
todownload
,co
mpil
ean
din
stal
ldoxygen
for
your
pla
tform
.
•S
ecti
on
Get
ting
star
ted
tell
syou
how
togen
erat
eyour
firs
tpie
ceof
docu
men
tati
on
quic
kly
.
•S
ecti
on
Docu
men
ting
the
code
dem
onst
rate
sth
evar
ious
way
sth
atco
de
can
be
docu
men
ted.
•S
ecti
on
Lis
tssh
ow
var
ious
way
sto
crea
teli
sts.
•S
ecti
on
Gro
upin
gsh
ow
show
togro
up
thin
gs
toget
her
.
•S
ecti
on
Incl
udin
gfo
rmula
ssh
ow
show
toin
sert
form
ula
sin
the
docu
men
tati
on.
•S
ecti
on
Gra
phs
and
dia
gra
ms
des
crib
esth
edia
gra
ms
and
gra
phs
that
doxygen
can
gen
erat
e.
•S
ecti
on
Pre
pro
cess
ing
expla
ins
how
doxygen
dea
lsw
ith
mac
rodefi
nit
ions.
•S
ecti
on
Auto
mat
icli
nk
gen
erat
ion
show
show
toput
links
tofi
les,
clas
ses,
and
mem
ber
sin
the
docu
men
tati
on.
•S
ecti
on
Outp
ut
Form
ats
show
show
togen
erat
eth
evar
ious
outp
ut
form
ats
support
edby
doxygen
.
•S
ecti
on
Cust
om
Com
man
ds
show
how
todefi
ne
and
use
cust
om
com
man
ds
inyour
com
men
ts.
•S
ecti
on
Lin
kin
gto
exte
rnal
docu
men
tati
on
expla
ins
how
tole
tdoxygen
crea
teli
nks
toex
tern
ally
gen
erat
eddocu
men
tati
on.
•S
ecti
on
Fre
quen
tly
Ask
edQ
ues
tions
giv
esan
swer
sto
freq
uen
tly
asked
ques
tions.
•S
ecti
on
Tro
uble
shooti
ng
tell
syou
what
todo
when
you
hav
epro
ble
ms.
The
seco
nd
par
tfo
rms
are
fere
nce
man
ual
:
Use
rM
an
ua
lfo
rD
ox
yg
en1
.5.6
,w
ritt
enb
yD
imit
riva
nH
eesc
hc ©
19
97
-20
06
40
public:
Test();
//!<constructor
˜Test();
//!<destructor
voidmember(int);
/**<Amemberfunction.Details.*/
voidmember(int,int);/**<Anoverloadedmemberfunction.Details
*/
/**Anenumtype.Moredetails*/
enumEType{
Val1,
/**<enumvalue1*/
Val2
/**<enumvalue2*/
};
protected:
intvar;
/**<Amembervariable*/
};
/*!details.*/
Test::Test(){}
/*!details.
*/
Test::˜Test(){}
/*!Aglobalvariable.*/
intglobVar;
/*!Aglobalenum.*/
enumGlobEnum{
GVal1,
/*!<globalenumvalue1*/
GVal2
/*!<globalenumvalue2*/
};
/*!
*Amacrodefinition.
*/
#defineABS(x)(((x)>0)?(x):-(x))
typedefTestB;
/*!\fntypedefTestB
*Atypedefinition.
*/
23
typ
edef
s.
Typed
efs
that
involv
ecl
asse
s,st
ruct
san
dunio
ns,
like
typedefstructStructNameTypeName
crea
tean
alia
sfo
rS
truct
Nam
e,so
links
wil
lbe
gen
erat
edto
Str
uct
Nam
e,w
hen
eith
erS
truct
Nam
eit
self
or
TypeN
ame
isen
counte
red.
Exam
ple
:
/*!\filerestypedef.cpp
*Anexampleofresolvingtypedefs.
*/
/*!\structCoordStruct
*Acoordinatepair.
*/
structCoordStruct
{
/*!Thexcoordinate*/
Use
rM
an
ua
lfo
rD
ox
yg
en1
.5.6
,w
ritt
enb
yD
imit
riva
nH
eesc
hc ©
19
97
-20
06
39
22
Lin
ks
tova
ria
ble
s,ty
ped
efs,
enu
mty
pes
,en
um
va
lues
an
dd
e-
fin
es.
All
of
thes
een
titi
esca
nbe
linked
toin
the
sam
ew
ayas
des
crib
edin
the
pre
vio
us
sect
ion.
For
sake
of
clar
ity
itis
advis
edto
only
use
pat
tern
s3
and
7in
this
case
.
Exam
ple
:
/*!\fileautolink.cpp
Testingautomaticlinkgeneration.
AlinktoamemberoftheTestclass:Test::member,
Morespecificlinkstotheeachoftheoverloadedmembers:
Test::member(int)andTest#member(int,int)
AlinktoaprotectedmembervariableofTest:Test#var,
Alinktotheglobalenumerationtype#GlobEnum.
Alinktothedefine#ABS(x).
AlinktothedestructoroftheTestclass:Test::˜Test,
Alinktothetypedef::B.
AlinktotheenumerationtypeTest::EType
AlinktosomeenumerationvaluesTest::Val1and::GVal2
*/
/*! SincethisdocumentationblockbelongstotheclassTestnolinkto
Testisgenerated.
Twowaystolinktoaconstructorare:#TestandTest().
Linkstothedestructorare:#˜Testand˜Test().
Alinktoamemberinthisclass:member().
Morespecificlinkstotheeachoftheoverloadedmembers:
member(int)andmember(int,int).
Alinktothevariable#var.
Alinktotheglobaltypedef::B.
Alinktotheglobalenumerationtype#GlobEnum.
AlinktothedefineABS(x).
Alinktoavariable\link#varusinganothertext\endlinkasalink.
Alinktotheenumerationtype#EType.
Alinktosomeenumerationvalues:\linkTest::Val1Val1\endlinkand::GVal1.
Andlastbutnotleastalinktoafile:autolink.cpp.
\saInsideaseealsosectionanywordischecked,soEType,
Val1,GVal1,˜TestandmemberwillbereplacedbylinksinHTML.
*/
classTest
{
Use
rM
an
ua
lfo
rD
ox
yg
en1
.5.6
,w
ritt
enb
yD
imit
riva
nH
eesc
hc ©
19
97
-20
06
CO
NT
EN
TS
2
•S
ecti
on
Fea
ture
spre
sents
anover
vie
wof
what
doxygen
can
do.
•S
ecti
on
Doxygen
His
tory
show
sw
hat
has
chan
ged
duri
ng
the
dev
elopm
entof
doxygen
and
what
stil
l
has
tobe
done.
•S
ecti
on
Doxygen
usa
ge
show
show
touse
thedoxygen
pro
gra
m.
•S
ecti
on
Doxyta
gusa
ge
show
show
touse
thedoxytag
pro
gra
m.
•S
ecti
on
Doxyw
izar
dusa
ge
show
show
touse
thedoxywizard
pro
gra
m.
•S
ecti
on
Inst
alld
ox
usa
ge
show
show
touse
theinstalldox
scri
pt
that
isgen
erat
edby
doxygen
if
you
use
tag
file
s.
•S
ecti
on
Confi
gura
tion
show
show
tofi
ne-
tune
doxygen
,so
itgen
erat
esth
edocu
men
tati
on
you
wan
t.
•S
ecti
on
Spec
ial
Com
man
ds
show
san
over
vie
wof
the
spec
ial
com
man
ds
that
can
be
use
dw
ithin
the
docu
men
tati
on.
•S
ecti
on
HT
ML
Com
man
ds
show
san
over
vie
wof
the
HT
ML
com
man
ds
that
can
be
use
dw
ithin
the
docu
men
tati
on.
•S
ecti
on
XM
LC
om
man
ds
show
san
over
vie
wof
the
C#
style
XM
Lco
mm
ands
that
can
be
use
dw
ithin
the
docu
men
tati
on.
The
thir
dpar
tpro
vid
esin
form
atio
nfo
rdev
eloper
s:
•S
ecti
on
Doxygen
’sIn
tern
als
giv
esa
glo
bal
over
vie
wof
how
doxygen
isin
tern
ally
stru
cture
d.
•S
ecti
on
Per
lM
odule
outp
ut
form
atdocu
men
tati
on
show
show
touse
the
Per
lMod
outp
ut.
•S
ecti
on
Inte
rnat
ional
izat
ion
expla
ins
how
toad
dsu
pport
for
new
outp
ut
languag
es.
Do
xy
gen
lice
nse
Copyri
ght
c ©1997-2
008
byDimitrivanHeesch
.
Per
mis
sion
touse
,co
py,
modif
y,an
ddis
trib
ute
this
soft
war
ean
dit
sdocu
men
tati
on
under
the
term
sof
the
GN
UG
ener
alP
ubli
cL
icen
seis
her
eby
gra
nte
d.
No
repre
senta
tions
are
mad
eab
out
the
suit
abil
ity
of
this
soft
war
efo
ran
ypurp
ose
.It
ispro
vid
ed”a
sis
”w
ithout
expre
ssor
impli
edw
arra
nty
.S
eeth
eGNU
GeneralPublicLicense
for
more
det
ails
.
Docu
men
tspro
duce
dby
doxygen
are
der
ivat
ive
work
sder
ived
from
the
inputuse
din
thei
rpro
duct
ion;
they
are
not
affe
cted
by
this
lice
nse
.
Use
rex
am
ple
s
Doxygen
support
sa
num
ber
of
outp
ut
form
ats
wher
eH
TM
Lis
the
most
popula
rone.
I’ve
gat
her
edso
me
nic
eex
ample
s(s
eehttp://www.doxygen.org/results.html
)of
real
-lif
epro
ject
susi
ng
doxy-
gen
.
Thes
ear
epar
tof
ala
rger
list
of
pro
ject
sth
atuse
doxygen
(see
http://www.doxygen.org/projects.html
).If
you
know
oth
erpro
ject
s,le
tm
eknow
and
I’ll
add
them
.
Use
rM
an
ua
lfo
rD
ox
yg
en1
.5.6
,w
ritt
enb
yD
imit
riva
nH
eesc
hc ©
19
97
-20
06
CO
NT
EN
TS
3
Fu
ture
wo
rk
Alt
hough
doxygen
isuse
dsu
cces
sfull
yby
alo
tof
peo
ple
alre
ady,
ther
eis
alw
ays
room
for
impro
vem
ent.
Ther
efore
,I
hav
eco
mpil
eda
todo/w
ish
list
(seehttp://www.doxygen.org/todo.html
)of
poss
i-
ble
and/o
rre
ques
ted
enhan
cem
ents
.
Ack
now
led
gem
ents
Than
ks
go
to:
•M
alte
Zock
ler
and
Rola
nd
Wunder
ling,
auth
ors
of
DO
C+
+.
The
firs
tver
sion
of
doxygen
borr
ow
ed
som
eco
de
of
anold
ver
sion
of
DO
C+
+.
Alt
hough
Ihav
ere
wri
tten
pra
ctic
ally
all
code
since
then
,
DO
C+
+has
stil
lgiv
enm
ea
good
star
tin
wri
ting
doxygen
.
•A
llpeo
ple
atT
roll
Tec
h,
for
crea
ting
abea
uti
ful
GU
IT
oolk
it(w
hic
his
ver
yuse
ful
asa
Win
-
dow
s/U
nix
pla
tform
abst
ract
ion
layer
:-)
•K
evin
McB
ride
for
mai
nta
inin
gth
esu
bver
sion
repors
itory
for
doxygen
.
•M
ybro
ther
Fra
nk
for
render
ing
the
logos.
•H
arm
van
der
Hei
jden
for
addin
gH
TM
Lhel
psu
pport
.
•W
oute
rS
leger
sofYourCreativeSolutions
for
regis
teri
ng
the
ww
w.d
oxygen
.org
dom
ain.
•P
arker
Wae
chte
rfo
rad
din
gth
eR
TF
outp
ut
gen
erat
or.
•Jo
erg
Bau
man
n,
for
addin
gco
ndit
ional
docu
men
tati
on
blo
cks,
PD
Fli
nks,
and
the
confi
gura
tion
gen
erat
or.
•M
atth
ias
Andre
efo
rpro
vid
ing
a.s
pec
scri
pt
for
buil
din
grp
ms
from
the
sourc
es.
•T
imM
ensc
hfo
rad
din
gth
eto
do
com
man
d.
•C
hri
stia
nH
amm
ond
for
redes
ignin
gth
ew
eb-s
ite.
•K
enW
ong
for
pro
vid
ing
the
HT
ML
tree
vie
wco
de.
•T
alin
for
addin
gsu
pport
for
C#
style
com
men
tsw
ith
XM
Lm
arkup.
•P
etr
Pri
kry
lfo
rco
ord
inat
ing
the
inte
rnat
ional
isat
ion
support
.A
llla
nguag
em
ainta
iner
sfo
rpro
vid
ing
tran
slat
ions
into
man
yla
nguag
es.
•T
he
ban
dPorcupineTree
for
pro
vid
ing
hours
of
gre
atm
usi
cto
list
ento
whil
eco
din
g.
•m
any,
man
yoth
ers
for
sugges
tions,
pat
ches
and
bug
report
s.
Use
rM
an
ua
lfo
rD
ox
yg
en1
.5.6
,w
ritt
enb
yD
imit
riva
nH
eesc
hc ©
19
97
-20
06
38
20
Lin
ks
tofi
les.
All
word
sth
atco
nta
ina
dot
(.)
that
isnot
the
last
char
acte
rin
the
word
are
consi
der
edto
be
file
nam
es.
Ifth
ew
ord
isin
dee
dth
enam
eof
adocu
men
ted
input
file
,a
link
wil
lau
tom
atic
ally
be
crea
ted
toth
e
docu
men
tati
on
of
that
file
.
21
Lin
ks
tofu
nct
ion
s.
Lin
ks
tofu
nct
ions
are
crea
ted
ifone
of
the
foll
ow
ing
pat
tern
sis
enco
unte
red:
1.<functionName>"("<argument-list>")"
2.<functionName>"()"
3."::"<functionName>
4.(<className>"::")n<functionName>"("<argument-list>")"
5.(<className>"::")n<functionName>"("<argument-list>")"<modifiers>
6.(<className>"::")n<functionName>"()"
7.(<className>"::")n<functionName>
wher
en>
0.
Note
1:
Funct
ion
argum
ents
should
be
spec
ified
wit
hco
rrec
tty
pes
,i.
e.’f
un(c
onst
std::
stri
ng&
,bool)
’or
’()’
to
mat
chan
ypro
toty
pe.
Note
2:
Mem
ber
funct
ion
modifi
ers
(lik
e’c
onst
’an
d’v
ola
tile
’)ar
ere
quir
edto
iden
tify
the
targ
et,i
.e.
’func(
int)
const
’an
d’f
un(i
nt)
’ta
rget
dif
fere
nt
mem
ber
funct
ions.
Note
3:
For
JavaD
oc
com
pat
ibil
ity
a#
may
be
use
din
stea
dof
a::
inth
epat
tern
sab
ove.
Note
4:
Inth
edocu
men
tati
on
of
acl
ass
conta
inin
ga
mem
ber
foo,a
refe
rence
toa
glo
bal
var
iable
ism
ade
usi
ng
foo,w
her
eas
#fo
ow
ill
link
toth
em
ember
.
For
non
over
load
edm
ember
sth
ear
gum
ent
list
may
be
om
itte
d.
Ifa
funct
ion
isover
load
edan
dno
mat
chin
gar
gum
ent
list
issp
ecifi
ed(i
.e.
pat
tern
2or
6is
use
d),
ali
nk
wil
lbe
crea
ted
toth
edocu
men
tati
on
of
one
of
the
over
load
edm
ember
s.
For
mem
ber
funct
ions
the
clas
ssc
ope
(as
use
din
pat
tern
s4
to7)
may
be
om
itte
d,if
:
1.
The
pat
tern
poin
tsto
adocu
men
ted
mem
ber
that
bel
ongs
toth
esa
me
clas
sas
the
docu
men
tati
on
blo
ckth
atco
nta
ins
the
pat
tern
.
2.
The
clas
sth
atco
rres
ponds
toth
edocu
men
tati
on
blo
cks
that
conta
ins
the
pat
tern
has
abas
ecl
ass
that
conta
ins
adocu
men
ted
mem
ber
that
mat
ches
the
pat
tern
.
Use
rM
an
ua
lfo
rD
ox
yg
en1
.5.6
,w
ritt
enb
yD
imit
riva
nH
eesc
hc ©
19
97
-20
06
37
"DECLARE_MESSAGE_MAP()="\
TRY=try\
"CATCH_ALL(e)=catch(...)"\
END_CATCH_ALL=\
"THROW_LAST()=throw"\
"RUNTIME_CLASS(class)=class"\
"MAKEINTRESOURCE(nId)=nId"\
"IMPLEMENT_REGISTER(v,w,x,y,z)="\
"ASSERT(x)=assert(x)"\
"ASSERT_VALID(x)=assert(x)"\
"TRACE0(x)=printf(x)"\
"OS_ERR(A,B)={#A,B}"\
__cplusplus\
"DECLARE_OLECREATE(class)="\
"BEGIN_DISPATCH_MAP(class1,class2)="\
"BEGIN_INTERFACE_MAP(class1,class2)="\
"INTERFACE_PART(class,id,name)="\
"END_INTERFACE_MAP()="\
"DISP_FUNCTION(class,name,function,result,id)="\
"END_DISPATCH_MAP()="\
"IMPLEMENT_OLECREATE2(class,name,id1,id2,id3,id4,\
id5,id6,id7,id8,id9,id10,id11)="
As
you
can
see
doxygen
’spre
pro
cess
or
isquit
epow
erfu
l,but
ifyou
wan
tev
enm
ore
flex
ibil
ity
you
can
alw
ays
wri
tean
input
filt
eran
dsp
ecif
yit
afte
rth
eIN
PU
TF
ILT
ER
tag.
Ifyou
are
unsu
rew
hat
the
effe
ctof
doxygen
’spre
pro
cess
ing
wil
lbe
you
can
run
doxygen
asfo
llow
s:
doxygen-dPreprocessor
This
wil
lin
stru
ctdoxygen
todum
pth
ein
put
sourc
esto
stan
dar
doutp
ut
afte
rpre
pro
cess
ing
has
bee
ndone
(Hin
t:se
tQUIET=YES
andWARNINGS=NO
inth
eco
nfi
gura
tion
file
todis
able
any
oth
eroutp
ut)
.
Auto
mat
icli
nk
gen
erat
ionM
ost
docu
men
tati
on
syst
ems
hav
esp
ecia
l‘s
eeal
so’
sect
ions
wher
eli
nks
tooth
er
pie
ces
of
docu
men
tati
on
can
be
inse
rted
.A
lthough
doxygen
also
has
aco
mm
and
tost
art
such
ase
ctio
n
(See
sect
ion\
sa),
itdoes
allo
wyou
toput
thes
ekin
dof
links
anyw
her
ein
the
docu
men
tati
on.
For
LAT E
X
docu
men
tati
on
are
fere
nce
toth
epag
enum
ber
isw
ritt
enin
stea
dof
ali
nk.
Furt
her
more
,th
ein
dex
atth
e
end
of
the
docu
men
tca
nbe
use
dto
quic
kly
find
the
docu
men
tati
on
of
am
ember
,cl
ass,
nam
espac
eor
file
.
For
man
pag
esno
refe
rence
info
rmat
ion
isgen
erat
ed.
The
nex
tse
ctio
ns
show
how
togen
erat
eli
nks
toth
evar
ious
docu
men
ted
enti
ties
ina
sourc
efi
le.
18
Lin
ks
tow
ebp
ag
esa
nd
ma
ila
dd
ress
es
Doxygen
wil
lau
tom
atic
ally
repla
cean
yU
RL
san
dm
ail
addre
sses
found
inth
edocu
men
tati
on
by
links
(in
HT
ML
).
19
Lin
ks
tocl
ass
es.
All
word
sin
the
docu
men
tati
on
that
corr
espond
toa
docu
men
ted
clas
san
dco
nta
inat
leas
tone
upper
case
char
acte
rw
ill
auto
mat
ical
lybe
repla
ced
by
ali
nk
toth
epag
eco
nta
inin
gth
edocu
men
tati
on
of
the
clas
s.If
you
wan
tto
pre
ven
tth
ata
word
that
corr
esponds
toa
docu
men
ted
clas
sis
repla
ced
by
ali
nk
you
should
put
a%
infr
ont
of
the
word
.
Use
rM
an
ua
lfo
rD
ox
yg
en1
.5.6
,w
ritt
enb
yD
imit
riva
nH
eesc
hc ©
19
97
-20
06
4
Pa
rtI
Use
rM
an
ual
Inst
alla
tion
Fir
stgo
toth
edownload
pag
e(http://www.doxygen.org/download.html
)to
get
the
late
stdis
trib
uti
on,if
you
did
not
hav
eit
alre
ady.
This
sect
ion
isdiv
ided
into
the
foll
ow
ing
sect
ions:
•C
om
pil
ing
from
sourc
eon
Unix
•In
stal
ling
the
bin
arie
son
Unix
•K
now
nco
mpil
atio
npro
ble
ms
for
Unix
•C
om
pil
ing
from
sourc
eon
Win
dow
s
•In
stal
ling
the
bin
arie
son
Win
dow
s
•T
ools
use
dto
dev
elop
doxygen
1C
om
pil
ing
fro
mso
urc
eo
nU
nix
Ifyou
dow
nlo
aded
the
sourc
edis
trib
uti
on,you
nee
dat
leas
tth
efo
llow
ing
tobuil
dth
eex
ecuta
ble
:
•T
heGNU
tools
flex
,bis
on
and
GN
Um
ake,
and
stri
p
•In
ord
erto
gen
erat
ea
Mak
efile
for
your
pla
tform
,you
nee
dperl
(see
http://www.perl.com/
).
•T
he
confi
gure
scri
pt
assu
me
the
avai
libil
ity
of
stan
dar
dU
nix
tools
such
asse
d,
dat
e,fi
nd,
unam
e,
mv,
cp,ca
t,ec
ho,tr
,cd
,an
drm
.
To
take
full
advan
tage
of
doxygen
’sfe
ature
sth
efo
llow
ing
addit
ional
tools
should
be
inst
alle
d.
•T
roll
Tec
h’s
GU
Ito
olk
itQt
(seehttp://www.trolltech.com/products/qt.html
)ver
-
sion
3.3
or
hig
her
.T
his
isnee
ded
tobuil
dth
eG
UI
front-
end
doxyw
izar
d.
•A
LAT E
Xdis
trib
uti
on:
for
inst
anceteTeX1.0
par
(seehttp://www.tug.org/interest.html#free
).T
his
isnee
ded
for
gen
erat
ing
La-
TeX
,P
ost
scri
pt,
and
PD
Foutp
ut.
•theGraphvisualizationtoolkitversion1.8.10orhigher
par
(seehttp://www.graphviz.org/
).N
eeded
for
the
incl
ude
dep
enden
cygra
phs,
the
gra
ph-
ical
inher
itan
cegra
phs,
and
the
coll
abora
tion
gra
phs.
Ifyou
com
pil
egra
phviz
yours
elf,
mak
esu
re
you
do
incl
ude
free
type
support
(whic
hre
quir
esth
efr
eety
pe
libra
ryan
dhea
der
file
s),
oth
erw
ise
the
gra
phs
wil
lnot
render
pro
per
text
label
s.
•F
or
form
ula
sor
ifyou
do
not
wis
hto
use
pdfl
atex
,th
eghost
scri
pt
inte
rpre
ter
isnee
ded
.Y
ou
can
find
itatwww.ghostscript.com
.
•In
ord
erto
gen
erat
edoxygen
’sow
ndocu
men
tati
on,
Pyth
on
isnee
ded
,you
can
find
itat
www.python.org
.
Com
pil
atio
nis
now
done
by
per
form
ing
the
foll
ow
ing
step
s:
Use
rM
an
ua
lfo
rD
ox
yg
en1
.5.6
,w
ritt
enb
yD
imit
riva
nH
eesc
hc ©
19
97
-20
06
5
1.
Unpac
kth
ear
chiv
e,unle
ssyou
alre
ady
hav
edone
that
:
gunzipdoxygen-$VERSION.src.tar.gz
#uncompressthearchive
tarxfdoxygen-$VERSION.src.tar
#unpackit
2.
Run
the
confi
gure
scri
pt:
sh./configure
The
scri
pt
trie
sto
det
erm
ine
the
pla
tform
you
use
,th
em
ake
tool
(whic
hm
ust
be
GN
Um
ake)
and
the
per
lin
terp
rete
r.It
wil
lre
port
what
itfi
nds.
To
over
ride
the
auto
det
ecte
dpla
tform
and
com
pil
eryou
can
run
confi
gure
asfo
llow
s:
configure--platformplatform-type
See
thePLATFORMS
file
for
ali
stof
poss
ible
pla
tform
opti
ons.
Ifyou
hav
eQ
t-3.3
.xin
stal
led
and
wan
tto
buil
dth
eG
UI
front-
end,
you
should
run
the
confi
gure
scri
pt
wit
hth
e--with-doxywizard
opti
on:
configure--with-doxywizard
For
anover
vie
wof
oth
erco
nfi
gura
tion
opti
ons
use
configure--help
3.
Com
pil
eth
epro
gra
mby
runnin
gm
ake:
make
The
pro
gra
msh
ould
com
pil
ew
ithoutpro
ble
ms
and
thre
ebin
arie
s(doxygen
anddoxytag
)sh
ould
be
avai
lable
inth
ebin
dir
ecto
ryof
the
dis
trib
uti
on.
4.
Opti
onal
:G
ener
ate
the
use
rm
anual
.
makedocs
To
let
doxygen
gen
erat
eth
eH
TM
Ldocu
men
tati
on.
The
HT
ML
dir
ecto
ryof
the
dis
trib
uti
on
wil
lnow
conta
inth
ehtm
ldocu
men
tati
on
(just
poin
ta
HT
ML
bro
wse
rto
the
fileindex.html
inth
ehtm
ldir
ecto
ry).
You
wil
lnee
dth
epython
inte
rpre
ter
for
this
.
5.
Opti
onal
:G
ener
ate
aP
DF
ver
sion
of
the
man
ual
(you
wil
lnee
dpdflatex
,makeindex
,an
d
egrep
for
this
).
makepdf
The
PD
Fm
anualdoxygenmanual.pdf
wil
lbe
loca
ted
inth
ela
tex
dir
ecto
ryof
the
dis
trib
uti
on.
Just
vie
wan
dpri
nt
itvia
the
acro
bat
read
er.
Use
rM
an
ua
lfo
rD
ox
yg
en1
.5.6
,w
ritt
enb
yD
imit
riva
nH
eesc
hc ©
19
97
-20
06
36
{
virtual
HRESULT
QueryInterface(REFIIDiid,void**ppv)=0;
virtual
ULONG
AddRef()=0;
virtual
ULONG
Release()=0;
};
Note
that
the
PR
ED
EF
INE
Dta
gac
cepts
funct
ion
like
mac
rodefi
nit
ions
(lik
eDECLAREINTERFACE
),
norm
alm
acro
subst
ituti
ons
(lik
ePURE
andTHIS
)an
dpla
indefi
nes
(lik
ecplusplus
).
Note
also
that
pre
pro
cess
or
defi
nit
ions
that
are
norm
ally
defi
ned
auto
mat
ical
lyby
the
pre
pro
cess
or
(lik
e
cplusplus
),hav
eto
be
defi
ned
by
han
dw
ith
doxygen
’spar
ser
(this
isdone
bec
ause
thes
edefi
nes
are
oft
enpla
tform
/com
pil
ersp
ecifi
c).
Inso
me
case
syou
may
wan
tto
subst
itute
am
acro
nam
eor
funct
ion
by
som
ethin
gel
sew
ithout
exposi
ng
the
resu
ltto
furt
her
mac
rosu
bst
ituti
on.
You
can
do
this
but
usi
ng
the:=
oper
ator
inst
ead
of=
As
anex
ample
suppose
we
hav
eth
efo
llow
ing
pie
ceof
code:
#defineQListQListT
classQListT
{ };
Then
the
only
way
toget
doxygen
inte
rpre
tth
isas
acl
ass
defi
nit
ion
for
clas
sQ
Lis
tis
todefi
ne:
PREDEFINED=QListT:=QList
Her
eis
anex
ample
pro
vid
edby
Val
ter
Min
ute
and
Rey
esP
once
that
hel
ps
doxygen
tow
ade
thro
ugh
the
boil
erpla
teco
de
inM
icro
soft
’sA
TL
&M
FC
libra
ries
:
PREDEFINED
="DECLARE_INTERFACE(name)=classname"\
"STDMETHOD(result,name)=virtualresultname"\
"PURE==0"\
THIS_=\
THIS=\
DECLARE_REGISTRY_RESOURCEID=//\
DECLARE_PROTECT_FINAL_CONSTRUCT=//\
"DECLARE_AGGREGATABLE(Class)="\
"DECLARE_REGISTRY_RESOURCEID(Id)="\
DECLARE_MESSAGE_MAP=\
BEGIN_MESSAGE_MAP=/*\
END_MESSAGE_MAP=*///\
BEGIN_COM_MAP=/*\
END_COM_MAP=*///\
BEGIN_PROP_MAP=/*\
END_PROP_MAP=*///\
BEGIN_MSG_MAP=/*\
END_MSG_MAP=*///\
BEGIN_PROPERTY_MAP=/*\
END_PROPERTY_MAP=*///\
BEGIN_OBJECT_MAP=/*\
END_OBJECT_MAP()=*///\
DECLARE_VIEW_STATUS=//\
"STDMETHOD(a)=HRESULTa"\
"ATL_NO_VTABLE="\
"__declspec(a)="\
BEGIN_CONNECTION_POINT_MAP=/*\
END_CONNECTION_POINT_MAP=*///\
"DECLARE_DYNAMIC(class)="\
"IMPLEMENT_DYNAMIC(class1,class2)="\
"DECLARE_DYNCREATE(class)="\
"IMPLEMENT_DYNCREATE(class1,class2)="\
"IMPLEMENT_SERIAL(class1,class2,class3)="\
Use
rM
an
ua
lfo
rD
ox
yg
en1
.5.6
,w
ritt
enb
yD
imit
riva
nH
eesc
hc ©
19
97
-20
06
35
you
hav
eto
set
the
EX
PAN
DO
NL
YP
RE
DE
Fta
gtoYES
and
spec
ify
the
mac
rodefi
nit
ions
afte
rth
e
PR
ED
EF
INE
Dor
EX
PAN
DA
SD
EF
INE
Dta
g.
Aty
pic
ally
exam
ple
wher
eso
me
hel
pfr
om
the
pre
pro
cess
or
isnee
ded
isw
hen
dea
ling
wit
hM
icro
soft
’s
dec
lspec
languag
eex
tensi
on.
Her
eis
anex
ample
funct
ion.
extern"C"void__declspec(dllexport)ErrorMsg(StringaMessage,...);
When
noth
ing
isdone,
doxygen
wil
lbe
confu
sed
and
see
dec
lspec
asso
me
sort
of
funct
ion.
To
hel
p
doxygen
one
typic
ally
use
sth
efo
llow
ing
pre
pro
cess
or
sett
ings:
ENABLE_PREPROCESSING
=YES
MACRO_EXPANSION
=YES
EXPAND_ONLY_PREDEF
=YES
PREDEFINED
=__declspec(x)=
This
wil
lm
ake
sure
the
dec
lspec
(dll
export
)is
rem
oved
bef
ore
doxygen
par
ses
the
sourc
eco
de.
For
am
ore
com
ple
xex
ample
,su
ppose
you
hav
eth
efo
llow
ing
obfu
scat
edco
de
frag
men
tof
anab
stra
ct
bas
ecl
ass
call
edIUnknown:
/*!AreferencetoanIID*/
#ifdef__cplusplus
#defineREFIIDconstIID&
#else
#defineREFIIDconstIID*
#endif
/*!TheIUnknowninterface
*/
DECLARE_INTERFACE(IUnknown)
{
STDMETHOD(HRESULT,QueryInterface)(THIS_REFIIDiid,void**ppv)PURE;
STDMETHOD(ULONG,AddRef)(THIS)PURE;
STDMETHOD(ULONG,Release)(THIS)PURE;
};
wit
hout
mac
roex
pan
sion
doxygen
wil
lget
confu
sed,
but
we
may
not
wan
tto
expan
dth
eR
EF
IID
mac
ro,
bec
ause
itis
docu
men
ted
and
the
use
rth
atre
ads
the
docu
men
tati
on
should
use
itw
hen
imple
men
ting
the
inte
rfac
e.
By
sett
ing
the
foll
ow
ing
inth
eco
nfi
gfi
le:
ENABLE_PREPROCESSING=YES
MACRO_EXPANSION
=YES
EXPAND_ONLY_PREDEF
=YES
PREDEFINED
="DECLARE_INTERFACE(name)=classname"\
"STDMETHOD(result,name)=virtualresultname"\
"PURE==0"\
THIS_=\
THIS=\
__cplusplus
we
can
mak
esu
reth
atth
epro
per
resu
ltis
fed
todoxygen
’spar
ser:
/*!AreferencetoanIID*/
#defineREFIID
/*!TheIUnknowninterface
*/
class
IUnknown
Use
rM
an
ua
lfo
rD
ox
yg
en1
.5.6
,w
ritt
enb
yD
imit
riva
nH
eesc
hc ©
19
97
-20
06
6
2In
sta
llin
gth
eb
ina
ries
on
Un
ix
Aft
erth
eco
mpil
atio
nof
the
sourc
eco
de
do
amakeinstall
toin
stal
ldoxygen
.If
you
dow
nlo
aded
the
bin
ary
dis
trib
uti
on
for
Unix
,ty
pe:
./configure
makeinstall
Bin
arie
sar
ein
stal
led
into
the
dir
ecto
ry<prefix>/bin
.U
semakeinstalldocs
toin
stal
lth
e
docu
men
tati
on
and
exam
ple
sin
to<docdir>/doxygen
.
<prefix>
def
ault
sto/usr/local
but
can
be
chan
ged
wit
hth
e--prefix
opti
on
of
the
confi
gure
scri
pt.
The
def
ault<docdir>
dir
ecto
ryis<prefix>/share/doc/packages
and
can
be
chan
ged
wit
hth
e--docdir
opti
on
of
the
confi
gure
scri
pt.
Alt
ernat
ivel
y,you
can
also
copy
the
bin
arie
sfr
om
thebin
dir
ecto
rym
anual
lyto
som
ebin
dir
ecto
ryin
your
sear
chpat
h.
This
issu
ffici
ent
touse
doxygen
.
Note
: You
nee
dth
eG
NU
inst
all
tool
for
this
tow
ork
(it
ispar
tof
the
core
uti
lspac
kag
e).
Oth
erin
stal
lto
ols
may
put
the
bin
arie
sin
the
wro
ng
dir
ecto
ry!
Ifyou
hav
ea
RP
Mor
DE
Ppac
kag
e,th
enple
ase
foll
ow
the
stan
dar
din
stal
lati
on
pro
cedure
that
isre
quir
ed
for
thes
epac
kag
es.
3K
now
nco
mp
ila
tio
np
rob
lem
sfo
rU
nix
Qt
pro
ble
ms
The
Qt
incl
ude
file
san
dli
bra
ries
are
not
asu
bdir
ecto
ryof
the
dir
ecto
rypoin
ted
toby
QT
DIR
on
som
e
syst
ems
(for
inst
ance
on
Red
Hat
6.0
incl
udes
are
in/u
sr/i
ncl
ude/
qt
and
libs
are
in/u
sr/l
ib).
The
solu
tion:
go
toth
ero
ot
of
the
doxygen
dis
trib
uti
on
and
do:
mkdirqt
cdqt
ln-syour-qt-include-dir-hereinclude
ln-syour-qt-lib-dir-herelib
exportQTDIR=$PWD
Ifyou
hav
ea
csh-l
ike
shel
lyou
should
usesetenvQTDIR$PWD
inst
ead
of
theexport
com
man
d
above.
Now
inst
all
doxygen
asdes
crib
edab
ove.
Bis
on
pro
ble
ms
Ver
sions
1.3
1to
1.3
4of
bis
on
conta
ina
”bug”
that
resu
lts
ina
com
pil
erer
rors
like
this
:
cepar
se.c
pp:3
48:
mem
ber
‘cla
ssC
PP
Val
ue
yyal
loc:
:yyvs’
wit
hco
nst
ruct
or
not
allo
wed
inunio
n
This
pro
ble
mhas
bee
nso
lved
inver
sion
1.3
5(v
ersi
ons
bef
ore
1.3
1w
ill
also
work
).
Late
xp
rob
lem
s
The
filea4wide.sty
isnot
avai
lable
for
all
dis
trib
uti
ons.
Ifyour
dis
trib
uti
on
does
not
hav
eit
ple
ase
sele
ctan
oth
erpap
erty
pe
inth
eco
nfi
gfi
le(s
eeth
ePA
PE
RT
YP
Eta
gin
the
confi
gfi
le).
Use
rM
an
ua
lfo
rD
ox
yg
en1
.5.6
,w
ritt
enb
yD
imit
riva
nH
eesc
hc ©
19
97
-20
06
7
HP
-UX
&D
igit
al
Un
ixp
rob
lem
s
Ifyou
are
com
pil
ing
for
HP
-UX
wit
haC
Can
dyou
get
this
erro
r:
/opt/aCC/lbin/ld:Unsatisfiedsymbols:
alloca(code)
then
you
should
(acc
ord
ing
toA
nke
Sel
ig)
editceparse.cpp
and
repla
ce
extern"C"{
void*alloca(unsignedint);
};
wit
h
#include<alloca.h>
Ifth
atdoes
not
hel
p,tr
yre
movin
gceparse.cpp
and
let
bis
on
rebuil
dit
(this
work
edfo
rm
e).
Ifyou
are
com
pil
ing
for
Dig
ital
Unix
,th
esa
me
pro
ble
mca
nbe
solv
ed(a
ccord
ing
toB
arnar
dS
chm
allh
of)
by
repla
cing
the
foll
ow
ing
ince
par
se.c
pp:
#else/*
notGNUC.
*/
#if(!defined(__STDC__)&&defined(sparc))||defined(__sparc__)\
||defined(__sparc)||defined(__sgi)
#include<alloca.h>
wit
h
#else/*
notGNUC.
*/
#if(!defined(__STDC__)&&defined(sparc))||defined(__sparc__)\
||defined(__sparc)||defined(__sgi)||defined(__osf__)
#include<alloca.h>
Alt
ernat
ivel
y,one
could
fix
the
pro
ble
mat
the
bis
on
side.
Her
eis
pat
chfo
rbis
on.s
imple
(pro
vid
edby
Andre
Johan
sen):
---bison.simple˜
TueNov1811:45:531997
+++bison.simple
MonJan2615:10:261998
@@-27,7+27,7@@
#ifdef__GNUC__
#definealloca__builtin_alloca
#else/*notGNUC.
*/
-#if(!defined(__STDC__)&&defined(sparc))||defined(__sparc__)\
||defined(__sparc)||defined(__sgi)
+#if(!defined(__STDC__)&&defined(sparc))||defined(__sparc__)\
||defined(__sparc)||defined(__sgi)||defined(__alpha)
#include<alloca.h>
#else/*notsparc*/
#ifdefined(MSDOS)&&!defined(__TURBOC__)
The
gen
erat
edsc
anner
.cpp
that
com
esw
ith
doxygen
isbuil
dw
ith
this
pat
chap
pli
ed.
Su
nco
mp
iler
pro
ble
ms
Itap
pea
rsth
atdoxygen
does
n’t
work
pro
per
lyif
itis
com
pil
edw
ith
Sun’s
C+
+W
ork
Shop
6C
om
pil
er.
Ica
nnot
ver
ify
this
myse
lfas
Ido
not
hav
eac
cess
toa
Sola
ris
mac
hin
ew
ith
this
com
pil
er.
Wit
hG
NU
com
pil
erit
does
work
and
inst
alli
ng
Sun
pat
ch111679-1
3has
also
bee
nre
port
edas
aw
ayto
fix
the
pro
ble
m.
when
confi
guri
ng
wit
h--static
Igot:
Use
rM
an
ua
lfo
rD
ox
yg
en1
.5.6
,w
ritt
enb
yD
imit
riva
nH
eesc
hc ©
19
97
-20
06
34
diagramsd.h
#ifndef_DIAGRAM_D_H
#define_DIAGRAM_D_H
#include"diagrams_a.h"
#include"diagrams_b.h"
classC;
classD:virtualprotected
A,privateB{public:Cm_c;};
#endif
diagramse.h
#ifndef_DIAGRAM_E_H
#define_DIAGRAM_E_H
#include"diagrams_d.h"
classE:publicD{};
#endif
Pre
pro
cess
ingS
ourc
efi
les
that
are
use
das
input
todoxygen
can
be
par
sed
by
doxygen
’sbuil
t-in
C-
pre
pro
cess
or.
By
def
ault
doxygen
does
only
par
tial
pre
pro
cess
ing.
That
is,i
teval
uat
esco
ndit
ional
com
pil
atio
nst
atem
ents
(lik
e#if
)an
dev
aluat
esm
acro
defi
nit
ions,
but
itdoes
not
per
form
mac
roex
pan
sion.
So
ifyou
hav
eth
efo
llow
ing
code
frag
men
t
#defineVERSION200
#defineCONST_STRINGconstchar*
#ifVERSION>=200
staticCONST_STRINGversion="2.xx";
#else
staticCONST_STRINGversion="1.xx";
#endif
Then
by
def
ault
doxygen
wil
lfe
edth
efo
llow
ing
toit
spar
ser:
#defineVERSION
#defineCONST_STRING
staticCONST_STRINGversion="2.xx";
You
can
dis
able
all
pre
pro
cess
ing
by
sett
ing
EN
AB
LE
PR
EP
RO
CE
SS
ING
toNO
inth
eco
nfi
guat
ion
file
.
Inth
eca
seab
ove
doxygen
wil
lth
enre
adboth
stat
emen
ts,i.
e:
staticCONST_STRINGversion="2.xx";
staticCONST_STRINGversion="1.xx";
Inca
seyou
wan
tto
expan
dth
eCONSTSTRING
mac
ro,
you
should
set
the
MA
CR
OE
XPA
NS
ION
tag
in
the
confi
gfi
letoYES
.T
hen
the
resu
ltaf
ter
pre
pro
cess
ing
bec
om
es:
#defineVERSION
#defineCONST_STRING
staticconstchar*version="1.xx";
Note
that
doxygen
wil
lnow
expan
dall
mac
rodefi
nit
ions
(rec
urs
ivel
yif
nee
ded
).T
his
isoft
ento
om
uch
.
Ther
efore
,doxygen
also
allo
ws
you
toex
pan
donly
those
defi
nes
that
you
expli
citl
ysp
ecif
y.F
or
this
Use
rM
an
ua
lfo
rD
ox
yg
en1
.5.6
,w
ritt
enb
yD
imit
riva
nH
eesc
hc ©
19
97
-20
06
33
•A
dott
edd
ark
gre
enar
row
indic
ates
pri
vat
ein
her
itan
ce.
The
elem
ents
inth
ecl
ass
dia
gra
min
LAT E
Xhav
eth
efo
llow
ing
mea
nin
g:
•A
wh
ite
box
indic
ates
acl
ass.
Am
ark
erin
the
low
erri
ght
corn
erof
the
box
indic
ates
that
the
clas
s
has
bas
ecl
asse
sth
atar
ehid
den
.If
the
box
has
ad
ash
edbord
erth
isin
dic
ates
vir
tual
inher
itan
ce.
•A
soli
dar
row
indic
ates
publi
cin
her
itan
ce.
•A
dash
edar
row
indic
ates
pro
tect
edin
her
itan
ce.
•A
dott
edar
row
indic
ates
pri
vat
ein
her
itan
ce.
The
elem
ents
inth
egra
phs
gen
erat
edby
the
dot
tool
hav
eth
efo
llow
ing
mea
nin
g:
•A
wh
ite
box
indic
ates
acl
ass
or
stru
ctor
file
.
•A
box
wit
ha
red
bord
erin
dic
ates
anode
that
has
more
arro
ws
than
are
show
n!
Inoth
erw
ord
s:th
e
gra
ph
istr
unca
ted
wit
hre
spec
tto
this
node.
The
reas
on
why
agra
ph
isso
met
imes
trunca
ted
isto
pre
ven
tim
ages
from
bec
om
ing
too
larg
e.F
or
the
gra
phs
gen
erat
edw
ith
dot
doxygen
trie
sto
lim
it
the
wid
thof
the
resu
ltin
gim
age
to1024
pix
els.
•A
bla
ckbox
indic
ates
that
the
clas
s’docu
men
tati
on
iscu
rren
tly
show
n.
•A
dark
blu
ear
row
indic
ates
anin
clude
rela
tion
(for
the
incl
ude
dep
enden
cygra
ph)
or
publi
cin
her
-
itan
ce(f
or
the
oth
ergra
phs)
.
•A
dark
gre
enar
row
indic
ates
pro
tect
edin
her
itan
ce.
•A
dark
red
arro
win
dic
ates
pri
vat
ein
her
itan
ce.
•A
pu
rple
dash
edar
row
indic
ated
a”u
sage”
rela
tion,
the
edge
of
the
arro
wis
lable
dw
ith
the
var
i-
able
(s)
resp
onsi
ble
for
the
rela
tion.
Cla
ssA
use
scl
assB
,if
clas
sA
has
am
ember
var
iablem
of
type
C,w
her
eB
isa
subty
pe
of
C(e
.g.
Cco
uld
beB
,B∗
,T<B>∗
).
Her
ear
ea
couple
of
hea
der
file
sth
atto
get
her
show
the
var
ious
dia
gra
ms
that
doxygen
can
gen
erat
e:
diagramsa.h
#ifndef_DIAGRAMS_A_H
#define_DIAGRAMS_A_H
classA{public:A*m_self;};
#endif
diagramsb.h
#ifndef_DIAGRAMS_B_H
#define_DIAGRAMS_B_H
classA;
classB{public:A*m_a;};
#endif
diagramsc.h
#ifndef_DIAGRAMS_C_H
#define_DIAGRAMS_C_H
#include"diagrams_c.h"
classD;
classC:publicA{public:D*m_d;};
#endif
Use
rM
an
ua
lfo
rD
ox
yg
en1
.5.6
,w
ritt
enb
yD
imit
riva
nH
eesc
hc ©
19
97
-20
06
8
Undefined
firstreferenced
symbol
infile
dlclose
/usr/lib/libc.a(nss_deffinder.o)
dlsym
/usr/lib/libc.a(nss_deffinder.o)
dlopen
/usr/lib/libc.a(nss_deffinder.o)
Man
ual
lyad
din
g-Bdynamic
afte
rth
eta
rget
rule
inMakefile.doxygen
andMakefile.doxytag
wil
lfi
xth
is:
$(TARGET):$(OBJECTS)$(OBJMOC)
$(LINK)$(LFLAGS)-o$(TARGET)$(OBJECTS)$(OBJMOC)$(LIBS)-Bdynamic
GC
Cco
mp
iler
pro
ble
ms
Old
erver
sions
of
the
GN
Uco
mpil
erhav
epro
ble
ms
wit
hco
nst
ant
stri
ngs
conta
inin
gch
arac
ters
wit
hch
ar-
acte
rco
des
larg
erth
an127.
Ther
efore
the
com
pil
erw
ill
fail
toco
mpil
eso
me
of
the
tran
slat
or
xx.h
file
s.
Aw
ork
around,
ifyou
are
pla
nnin
gto
use
the
Engli
shtr
ansl
atio
nonly
,is
toco
nfi
gure
doxygen
wit
hth
e
--english-only
opti
on.
On
som
epla
tform
s(s
uch
asO
pen
BS
D)
usi
ng
som
ever
sions
of
gcc
wit
h-O
2ca
nle
adto
eati
ng
all
mem
ory
duri
ng
the
com
pil
atio
nof
file
ssu
chas
confi
g.c
pp.
As
aw
ork
around
use
–deb
ug
asa
confi
gure
opti
on
or
om
itth
e-O
2fo
rth
epar
ticu
lar
file
sin
the
Mak
efile
.
Gcc
ver
sions
bef
ore
2.9
5m
aypro
duce
bro
ken
bin
arie
sdue
tobugs
inth
ese
com
pil
ers.
Dot
pro
ble
ms
Due
toa
chan
ge
inth
ew
ayim
age
map
sar
egen
erat
ed,old
erver
sions
of
doxygen
(<=
1.2
.17)
wil
lnot
work
corr
ectl
yw
ith
new
erver
sions
of
gra
phviz
(>=
1.8
.8).
The
effe
ctof
this
inco
mpat
ibil
ity
isth
atgen
erat
ed
gra
phs
inH
TM
Lar
enot
pro
per
lycl
ickab
le.
For
doxygen
1.3
itis
reco
mm
ended
touse
atle
ast
gra
phviz
1.8
.10
or
hig
her
.F
or
doxygen
1.4
.7or
hig
her
itis
reco
mm
ended
touse
Gra
phV
iz2.8
or
hig
her
toav
oid
font
issu
es.
Red
Hat
9.0
pro
ble
ms
Ifyou
get
the
foll
ow
ing
erro
raf
ter
runnin
gm
ake
tmakeerror:qtools.pro:70:Syntaxerror
then
firs
tty
pe
exportLANG=
bef
ore
runnin
gm
ake.
4C
om
pil
ing
fro
mso
urc
eo
nW
ind
ow
s
Fro
mver
sion
1.5
.0onw
ards,
buil
dfi
les
are
pro
vid
edfo
rV
isual
Stu
dio
2005.
Als
oth
efr
ee(a
sin
bee
r)
”Expre
ss”
ver
sion
of
Dev
eloper
Stu
dio
can
be
use
dto
com
pil
edoxygen
.A
lter
nat
ivel
y,you
can
com
pil
e
doxygen
the
Unix
way
usi
ngCygwin
orMinGW
.
Bef
ore
you
can
com
pil
edoxygen
you
nee
dto
dow
nlo
adan
din
stal
lth
eC
++
com
pil
erof
Vis
ual
Stu
dio
.
Sin
ceM
icro
soft
appar
entl
yw
ants
tolu
reev
eryone
into
usi
ng
thei
r.N
ET
stuff
,th
eym
ade
thin
gs
som
ewhat
dif
ficu
ltw
hen
you
use
the
Expre
ssver
sion.
You
nee
dtodosomemanualsteps
inord
erto
setu
pa
pro
per
work
ing
envir
onm
ent
for
buil
din
gnat
ive
win
32
appli
cati
ons
such
asD
oxygen
.
The
nex
tst
epis
toin
stal
lunxuti
ls(s
eehttp://sourceforge.net/projects/unxutils
).T
his
pac
kag
esco
nta
ins
the
toolsflex
andbison
whic
har
enee
ded
duri
ng
the
com
pil
atio
npro
cess
ifyou
use
Use
rM
an
ua
lfo
rD
ox
yg
en1
.5.6
,w
ritt
enb
yD
imit
riva
nH
eesc
hc ©
19
97
-20
06
9
aC
VS
snap
shot
of
doxygen
(the
offi
cial
sourc
ere
leas
esco
me
wit
hpre
-gen
erat
edso
urc
es).
Dow
nlo
adth
e
zip
extr
act
itto
e.g.c:\tools\unxutils
.
Now
you
nee
dto
add/a
dju
stth
efo
llow
ing
envir
onm
ent
var
iable
s(v
iaC
ontr
ol
Pan
el/S
yst
em/A
dvan
ced/E
nvir
onm
ent
Var
iable
s):
•ad
dc:\tools\unxutils\usr\local\wbin;
toth
est
art
ofPATH
•se
tBISONSIMPLE
toc:\tools\unxutils\usr\share\bison.simple
Dow
nlo
addoxygen
’sso
urc
eta
rbal
lan
dput
itso
mew
her
e(e
.gusec:\tools
)
Now
star
ta
new
com
man
dsh
ell
and
type
cdc:\tools
gunzipdoxygen-x.y.z.src.tar.gz
tarxvfdoxygen-x.y.z.src.tar
tounpac
kth
eso
urc
es.
Now
your
envir
onm
ent
isse
tup
tobuil
ddoxygen
anddoxytag
.
Insi
de
thedoxygen-x.y.z
dir
ecto
ryyou
wil
lfi
nd
awinbuild
dir
ecto
ryco
nta
inin
gaDoxygen.sln
file
.O
pen
this
file
inV
isual
Stu
dio
.Y
ou
can
now
buil
dth
eR
elea
seor
Deb
ug
flav
or
of
Doxygen
and
Doxyta
gby
right-
clic
kin
gth
epro
ject
inth
eso
luti
ons
explo
rer,
and
sele
ctin
gB
uil
d.
Note
that
com
pil
ing
Doxyw
izar
dcu
rren
tly
requir
esQ
tver
sion
3(s
ee
http://www.trolltech.com/products/qt/qt3
).If
you
do
not
hav
ea
com
mer
cial
lice
nse
,you
can
buil
dD
oxyw
izar
dw
ith
the
open
sourc
ever
sion
(see
http://qtwin.sourceforge.net/qt3-win32/compile-msvc-2005.php
),but
Ihav
enot
trie
dth
ism
yse
lf.
Als
ore
adth
enex
tse
ctio
nfo
rad
dit
ional
tools
you
may
nee
dto
inst
all
toru
ndoxygen
wit
hce
rtai
nfe
ature
s
enab
led.
5In
sta
llin
gth
eb
ina
ries
on
Win
dow
s
Doxygen
com
esas
ase
lf-i
nst
alli
ng
arch
ive,
soin
stal
lati
on
isex
trem
ely
sim
ple
.Ju
stfo
llow
the
dia
logs.
Aft
erin
stal
lati
on
itis
reco
mm
ended
toal
sodow
nlo
adan
din
stal
lG
raphV
iz(v
ersi
on
2.8
or
bet
ter
ishig
hly
reco
mm
ended
).D
oxygen
can
use
thedot
tool
of
the
Gra
phV
izpac
kag
eto
render
nic
erdia
gra
ms,
see
the
HA
VE
DO
Topti
on
inth
eco
nfi
gura
tion
file
.
Ifyou
wan
tto
pro
duce
com
pre
ssed
HT
ML
file
s(s
eeG
EN
ER
AT
EH
TM
LH
EL
P)
inth
eco
nfi
gfi
le,
then
you
nee
dth
eM
icro
soft
HT
ML
hel
pw
ork
shop.
You
can
dow
nlo
adit
fromMicrosoft
.
Inord
erto
gen
erat
eP
DF
outp
ut
or
use
scie
nti
fic
form
ula
syou
wil
lal
sonee
dto
inst
allLaTeX
and
Ghostscript
.
For
LaT
eXa
num
ber
of
dis
trib
uti
ons
exis
ts.
Popula
ronce
sth
atsh
ould
work
wit
hdoxygen
areMikTex
andXemTex
.
Ghost
scri
pt
can
bedownloaded
from
Sourc
eforg
e.
Aft
erin
stal
ling
LaT
eXan
dG
host
scri
pt
you’l
lnee
dto
mak
esu
reth
eto
ols
late
x.e
xe,
pdfl
atex
.exe,
and
gsw
in32c.
exe
are
pre
sent
inth
ese
arch
pat
hof
aco
mm
and
box.
Foll
owthese
inst
ruct
ions
ifyou
are
unsu
rean
dru
nth
eco
mm
ands
from
aco
mm
and
box
tover
ify
itw
ork
s.
Use
rM
an
ua
lfo
rD
ox
yg
en1
.5.6
,w
ritt
enb
yD
imit
riva
nH
eesc
hc ©
19
97
-20
06
32
For
the
firs
ttw
oco
mm
ands
one
should
mak
esu
refo
rmula
sco
nta
inval
idco
mm
ands
inLA
T EX
’sm
ath-m
ode.
For
the
thir
dco
mm
and
the
sect
ion
should
conta
inval
idco
mm
and
for
the
spec
ific
envir
onm
ent.
Warn
ing:
Curr
entl
y,doxygen
isnot
ver
yfa
ult
tole
rant
inre
cover
ing
from
typos
info
rmula
s.It
may
be
nec
essa
ry
tore
move
the
fileformula.repository
that
isw
ritt
ento
the
htm
ldir
ecto
ryto
get
rid
of
an
inco
rrec
tfo
rmula
.
Gra
phs
and
dia
gra
msD
oxygen
has
buil
t-in
support
togen
erat
ein
her
itan
cedia
gra
ms
for
C+
+cl
asse
s.
Doxygen
can
use
the
”dot”
tool
from
gra
phviz
1.5
togen
erat
em
ore
advan
ced
dia
gra
ms
and
gra
phs.
Gra
phviz
isan
”open
-sourc
ed”,
cross
-pla
tform
gra
ph
dra
win
gto
olk
itan
dca
nbe
found
at
http://www.graphviz.org/
Ifyou
hav
eth
e”d
ot”
tool
avai
lable
inth
epat
h,you
can
set
HA
VE
DO
TtoYES
inth
eco
nfi
gura
tion
file
to
let
doxygen
use
it.
Doxygen
use
sth
e”d
ot”
tool
togen
erat
eth
efo
llow
ing
gra
phs:
•if
GR
AP
HIC
AL
HIE
RA
RC
HY
isse
ttoYES
,a
gra
phic
alre
pre
senta
tion
of
the
clas
shie
rarc
hy
wil
l
be
dra
wn,al
ong
wit
hth
ete
xtu
alone.
Curr
entl
yth
isfe
ature
issu
pport
edfo
rH
TM
Lonly
.
Warn
ing:
When
you
hav
ea
ver
yla
rge
clas
shie
rarc
hy
wher
em
any
clas
ses
der
ive
from
aco
mm
on
bas
ecl
ass,
the
resu
ltin
gim
age
may
bec
om
eto
obig
tohan
dle
for
som
ebro
wse
rs.
•if
CL
AS
SG
RA
PH
isse
ttoYES
,a
gra
ph
wil
lbe
gen
erat
edfo
rea
chdocu
men
ted
clas
ssh
ow
ing
the
dir
ect
and
indir
ect
inher
itan
cere
lati
ons.
This
dis
able
sth
egen
erat
ion
of
the
buil
t-in
clas
sin
her
itan
ce
dia
gra
ms.
•if
INC
LU
DE
GR
AP
His
set
toYES
,an
incl
ude
dep
enden
cygra
ph
isgen
erat
edfo
rea
chdocu
men
ted
file
that
incl
udes
atle
ast
one
oth
erfi
le.
This
feat
ure
iscu
rren
tly
support
edfo
rH
TM
Lan
dR
TF
only
.
•if
CO
LL
AB
OR
AT
ION
GR
AP
His
setto
YE
S,a
gra
ph
isdra
wn
for
each
docu
men
ted
clas
san
dst
ruct
that
show
s:
–th
ein
her
itan
cere
lati
ons
wit
hbas
ecl
asse
s.
–th
eusa
ge
rela
tions
wit
hoth
erst
ruct
san
dcl
asse
s(e
.g.
clas
sA
has
am
ember
var
iablema
of
type
clas
sB
,th
enA
has
anar
row
toB
wit
hma
asla
bel
).
•if
CA
LL
GR
AP
His
set
toY
ES
,a
gra
phic
alca
llgra
ph
isdra
wn
for
each
funct
ion
show
ing
the
funct
ions
that
the
funct
ion
dir
ectl
yor
indir
ectl
yca
lls.
•if
CA
LL
ER
GR
AP
His
set
toY
ES
,a
gra
phic
alca
ller
gra
ph
isdra
wn
for
each
funct
ion
show
ing
the
funct
ions
that
the
funct
ion
isdir
ectl
yor
indir
ectl
yca
lled
by.
The
elem
ents
inth
ecl
ass
dia
gra
ms
inH
TM
Lan
dR
TF
hav
eth
efo
llow
ing
mea
nin
g:
•A
yel
low
box
indic
ates
acl
ass.
Abox
can
hav
ea
litt
lem
arker
inth
elo
wer
right
corn
erto
indic
ate
that
the
clas
sco
nta
ins
bas
ecl
asse
sth
atar
ehid
den
.F
or
the
clas
sdia
gra
ms
the
max
imum
tree
wid
th
iscu
rren
tly
8el
emen
ts.
Ifa
tree
isw
ider
som
enodes
wil
lbe
hid
den
.If
the
box
isfi
lled
wit
ha
das
hed
pat
tern
the
inher
itan
cere
lati
on
isvir
tual
.
•A
wh
ite
box
indic
ates
that
the
docu
men
tati
on
of
the
clas
sis
curr
entl
ysh
ow
n.
•A
gre
ybox
indic
ates
anundocu
men
ted
clas
s.
•A
soli
dd
ark
blu
ear
row
indic
ates
publi
cin
her
itan
ce.
•A
dash
edd
ark
gre
enar
row
indic
ates
pro
tect
edin
her
itan
ce.
Use
rM
an
ua
lfo
rD
ox
yg
en1
.5.6
,w
ritt
enb
yD
imit
riva
nH
eesc
hc ©
19
97
-20
06
31
Incl
udin
gF
orm
ula
sDoxygen
allo
ws
you
toputLA
T EX
form
ula
sin
the
ou
tput(t
his
work
sonly
for
the
HT
ML
and
LAT E
Xoutp
ut,
not
for
the
RT
Fnor
for
the
man
pag
eoutp
ut)
.T
obe
able
toin
clude
form
ula
s(a
sim
ages
)
inth
eH
TM
Ldocu
men
tati
on,you
wil
lal
sonee
dto
hav
eth
efo
llow
ing
tools
inst
alle
d
•latex:
the
LAT E
Xco
mpil
er,
nee
ded
topar
seth
efo
rmula
s.T
ote
stI
hav
euse
dth
ete
TeX
1.0
dis
tri-
buti
on.
•dvips:
ato
ol
toco
nver
tD
VI
file
sto
Post
Scr
ipt
file
sI
hav
euse
dver
sion
5.9
2b
from
Rad
ical
Eye
soft
war
efo
rte
stin
g.
•gs:
the
Ghost
Scr
ipt
inte
rpre
ter
for
conv
erti
ng
Post
Scr
ipt
file
sto
bit
map
s.I
hav
euse
dA
laddin
Ghost
Scr
ipt
8.0
for
test
ing.
Ther
ear
eth
ree
way
sto
incl
ude
form
ula
sin
the
docu
men
tati
on.
1.
Usi
ng
in-t
ext
form
ula
sth
atap
pea
rin
the
runnin
gte
xt.
Thes
efo
rmula
ssh
ould
be
put
bet
wee
na
pai
r
of\f
$co
mm
ands,
so
Thedistancebetween\f$(x_1,y_1)\f$and\f$(x_2,y_2)\f$is
\f$\sqrt{(x_2-x_1)ˆ2+(y_2-y_1)ˆ2}\f$.
resu
lts
in:
The
dis
tance
bet
wee
n(x
1,y
1)
and
(x2,y
2)
is√
(x2−x
1)2
+(y
2−y1)2
.
2.
Unnum
ber
eddis
pla
yed
form
ula
sth
atar
ece
nte
red
on
ase
par
ate
line.
Thes
efo
rmula
ssh
ould
be
put
bet
wee
n\f
[an
d\f
]co
mm
ands.
An
exam
ple
:
\f[ |I_2|=\left|\int_{0}ˆT\psi(t)
\left\{
u(a,t)-
\int_{\gamma(t)}ˆa
\frac{d\theta}{k(\theta,t)}
\int_{a}ˆ\thetac(\xi)u_t(\xi,t)\,d\xi
\right\}dt
\right|
\f]
resu
lts
in:
|I2|=
∣ ∣ ∣ ∣ ∣
∫
T
0
ψ(t
)
{
u(a,t
)−
∫
a
γ(t
)
dθ
k(θ,t
)
∫
θ
a
c(ξ)u
t(ξ,t
)dξ
}
dt∣ ∣ ∣ ∣ ∣
3.
Form
ula
sor
oth
erla
tex
elem
ents
that
are
not
ina
mat
hen
vir
onm
ent
can
be
spec
ified
usi
ng
\f{
envir
onm
ent}
,w
her
eenvironment
isth
enam
eof
the
LAT E
Xen
vir
onm
ent,
the
corr
espondin
g
end
com
man
dis\f}.
Her
eis
anex
ample
for
aneq
uat
ion
arra
y
\f{eqnarray*}{
g&=&\frac{Gm_2}{rˆ2}\\
&=&\frac{(6.673\times10ˆ{-11}\,\mbox{m}ˆ3\,\mbox{kg}ˆ{-1}\,
\mbox{s}ˆ{-2})(5.9736\times10ˆ{24}\,\mbox{kg})}{(6371.01\,\mbox{km})ˆ2}\\
&=&9.82066032\,\mbox{m/s}ˆ2
\f}
whic
hre
sult
sin
:
g=
Gm
2
r2
=(6.6
73×
10−
11
m3
kg−
1s−
2)(
5.97
36×
1024
kg)
(637
1.01
km
)2
=9.
8206
6032
m/s
2
Use
rM
an
ua
lfo
rD
ox
yg
en1
.5.6
,w
ritt
enb
yD
imit
riva
nH
eesc
hc ©
19
97
-20
06
10
6T
oo
lsu
sed
tod
evel
op
do
xy
gen
Doxygen
was
dev
eloped
and
test
edunder
Lin
ux
&M
acO
SX
usi
ng
the
foll
ow
ing
open
-sourc
eto
ols
:
•G
CC
ver
sion
3.3
.6(L
inux)
and
4.0
.1(M
acO
SX
)
•G
NU
flex
ver
sion
2.5
.33
(Lin
ux)
and
2.5
.4(M
acO
SX
)
•G
NU
bis
on
ver
sion
1.7
5
•G
NU
mak
ever
sion
3.8
0
•P
erl
ver
sion
5.8
.1
•V
IMver
sion
6.2
•F
iref
ox
1.5
•T
roll
Tec
h’s
tmak
ever
sion
1.3
(incl
uded
inth
edis
trib
uti
on)
•te
TeX
ver
sion
2.0
.2
•C
VS
1.1
2.1
2
Get
ting
Sta
rted
The
exec
uta
bledoxygen
isth
em
ain
pro
gra
mth
atpar
ses
the
sourc
esan
dgen
erat
esth
e
docu
men
tati
on.
See
sect
ion
Doxygen
usa
ge
for
more
det
aile
dusa
ge
info
rmat
ion.
The
exec
uta
bledoxytag
isonly
nee
ded
ifyou
wan
tto
gen
erat
ere
fere
nce
sto
exte
rnal
docu
men
tati
on
(i.e
.docu
men
tati
on
that
was
gen
erat
edby
doxygen
)fo
rw
hic
hyou
do
not
hav
eth
eso
urc
es.
See
sect
ion
Doxyta
gusa
ge
for
more
det
aile
dusa
ge
info
rmat
ion.
Opti
onal
ly,
the
exec
uta
bledoxywizard
can
be
use
d,
whic
his
agra
phic
alfr
ont-
end
for
edit
ing
the
con-
figura
tion
file
that
isuse
dby
doxygen
and
for
runnin
gdoxygen
ina
gra
phic
alen
vir
onm
ent.
For
Mac
OS
X
doxyw
izar
dw
ill
be
star
ted
by
clic
kin
gon
the
Doxygen
appli
cati
on
icon.
The
foll
ow
ing
figure
show
sth
ere
lati
on
bet
wee
nth
eto
ols
and
the
flow
of
info
rmat
ion
bet
wee
nth
em(i
t
looks
com
ple
xbut
that
’sonly
bec
ause
ittr
ies
tobe
com
ple
te):
Use
rM
an
ua
lfo
rD
ox
yg
en1
.5.6
,w
ritt
enb
yD
imit
riva
nH
eesc
hc ©
19
97
-20
06
11
Co
nfi
g f
ile
Do
xy
file
− h
ead
ers
− i
mag
es
− f
oo
ters
gen
erat
e/u
pd
ate
read
read
read
Tag
fil
e(s)
Do
xy
wiz
ard
gen
erat
ere
ad
gen
erat
e/ed
itX
ML
fil
es
Lat
ex f
iles
Mak
efil
e
+
Do
xy
gen
Yo
ur
app
lica
tio
n
do
xm
lpar
ser
lib
mak
e p
df
mak
e p
s
late
x
cust
om
ou
tpu
t
po
stsc
rip
t
PD
F
refm
an.r
tfM
S−
Wo
rdd
oc
imp
ort
HT
ML
pag
esH
TM
L H
elp
Wo
rksh
op
chm
Man
pag
es
par
se
Do
xy
tag
read
Win
do
ws
on
ly
read
So
urc
es
Cu
sto
m
gen
erat
e
Fig
ure
1:
Doxygen
info
rmat
ion
flow
7S
tep
1:
Cre
ati
ng
aco
nfi
gu
rati
on
file
Doxygen
use
sa
confi
gura
tion
file
todet
erm
ine
allof
its
sett
ings.
Eac
hpro
ject
should
get
its
ow
nco
nfi
gura
-
tion
file
.A
pro
ject
can
consi
stof
asi
ngle
sourc
efi
le,but
can
also
be
anen
tire
sourc
etr
eeth
atis
recu
rsiv
ely
scan
ned
.
To
sim
pli
fyth
ecr
eati
on
of
aco
nfi
gura
tion
file
,doxygen
can
crea
tea
tem
pla
teco
nfi
gura
tion
file
for
you.
To
do
this
calldoxygen
from
the
com
man
dli
ne
wit
hth
e-g
opti
on:
doxygen-g<config-file>
wher
e<
confi
g-fi
le>
isth
enam
eof
the
confi
gura
tion
file
.If
you
om
itth
efi
lenam
e,a
file
nam
ed
Doxyfile
wil
lbe
crea
ted.
Ifa
file
wit
hth
enam
e<
confi
g-fi
le>
alre
ady
exis
ts,
doxygen
wil
lre
nam
e
itto<
confi
g-fi
le>
.bak
bef
ore
gen
erat
ing
the
confi
gura
tion
tem
pla
te.
Ifyou
use-
(i.e
.th
em
inus
sign)
as
the
file
nam
eth
endoxygen
wil
ltr
yto
read
the
confi
gura
tion
file
from
stan
dar
din
put
(stdin
),w
hic
hca
n
be
use
ful
for
scri
pti
ng.
The
confi
gura
tion
file
has
afo
rmat
that
issi
mil
arto
that
of
a(s
imple
)M
akefi
le.
Itco
nsi
sts
of
anum
ber
of
assi
gnm
ents
(tag
s)of
the
form
:
Use
rM
an
ua
lfo
rD
ox
yg
en1
.5.6
,w
ritt
enb
yD
imit
riva
nH
eesc
hc ©
19
97
-20
06
30
level
gro
up
(the
gro
up
isdis
pla
yed
asa
subse
ctio
nof
the
”Sta
tic
Publi
cM
ember
s”se
ctio
nfo
rin
stan
ce).
Iftw
oor
more
mem
ber
shav
edif
fere
nt
types
,th
enth
egro
up
isput
atth
esa
me
level
asth
eau
tom
atic
ally
gen
erat
edgro
ups.
Ifyou
wan
tto
forc
eal
lm
ember
-gro
ups
of
acl
ass
tobe
atth
eto
ple
vel
,you
should
put
a
\nosu
bgro
upin
gco
mm
and
insi
de
the
docu
men
tati
on
of
the
clas
s.
Exam
ple
:
/**Aclass.Details*/
classTest
{
public:
//@{
/**Samedocumentationforbothmembers.Details*/
voidfunc1InGroup1();
voidfunc2InGroup1();
//@}
/**Functionwithoutgroup.Details.*/
voidungroupedFunction();
voidfunc1InGroup2();
protected:
voidfunc2InGroup2();
};
voidTest::func1InGroup1(){}
voidTest::func2InGroup1(){}
/**@nameGroup2
*Descriptionofgroup2.
*/
//@{
/**Function2ingroup2.Details.*/
voidTest::func2InGroup2(){}
/**Function1ingroup2.Details.*/
voidTest::func1InGroup2(){}
//@}
/*!\file
*docsforthisfile
*/
//@{
//!onedescriptionforallmembersofthisgroup
//!(becauseDISTRIBUTE_GROUP_DOCisYESintheconfigfile)
#defineA1
#defineB2
voidglob_func();
//@}
Her
eG
roup1
isdis
pla
yed
asa
subse
ctio
nof
the
”Publi
cM
ember
s”.
And
Gro
up2
isa
separ
ate
sect
ion
bec
ause
itco
nta
ins
mem
ber
sw
ith
dif
fere
nt
pro
tect
ion
level
s(i
.e.
publi
can
dpro
tect
ed).
17
Su
bp
ag
ing
Info
rmat
ion
can
be
gro
uped
into
pag
esusi
ng
the\
pag
ean
d\m
ainpag
eco
mm
ands.
Norm
ally
,th
isre
sult
s
ina
flat
list
of
pag
es,w
her
eth
e”m
ain”
pag
eis
the
firs
tin
the
list
.
Inst
ead
of
addin
gst
ruct
ure
usi
ng
the
appro
ach
dec
ribed
inse
ctio
nm
odule
sit
isoft
enm
ore
nat
ura
lan
d
conv
ienen
tto
add
addit
ional
stru
cture
toth
epag
esusi
ng
the\
subpag
eco
mm
and.
For
apag
eA
the\s
ubpag
eco
mm
and
adds
ali
nk
toan
oth
erpag
eB
and
atth
esa
me
tim
em
akes
pag
eB
a
subpag
eof
A.
This
has
the
effe
ctof
mak
ing
two
gro
ups
GA
and
GB
,w
her
eG
Bis
par
tof
GA
,pag
eA
is
put
ingro
up
GA
,an
dpag
eB
isput
ingro
up
GB
.
Use
rM
an
ua
lfo
rD
ox
yg
en1
.5.6
,w
ritt
enb
yD
imit
riva
nH
eesc
hc ©
19
97
-20
06
29
*/
/**@defgroupgroup5TheFifthGroup
*Thisisthefifthgroup
*@{
*/
/**@pagemypage1Thisisasectioningroup5
*Textofthefirstsection
*/
/**@pagemypage2Thisisanothersectioningroup5
*Textofthesecondsection
*/
/**@}*///endofgroup5
/**@addtogroupgroup1
* *Moredocumentationforthefirstgroup.
*@{
*/
/**anotherfunctioningroup1*/
voidfunc2(){}
/**yetanotherfunctioningroup1*/
voidfunc3(){}
/**@}*///endofgroup1
16
Mem
ber
Gro
up
s
Ifa
com
pound
(e.g
.a
clas
sor
file
)has
man
ym
ember
s,it
isoft
endes
ired
togro
up
them
toget
her
.D
oxygen
alre
ady
auto
mat
ical
lygro
ups
thin
gs
toget
her
on
type
and
pro
tect
ion
level
,but
may
be
you
feel
that
this
is
not
enough
or
that
that
def
ault
gro
upin
gis
wro
ng.
For
inst
ance
,bec
ause
you
feel
that
mem
ber
sof
dif
fere
nt
(synta
ctic
)ty
pes
bel
ong
toth
esa
me
(sem
anti
c)gro
up.
Am
ember
gro
up
isdefi
ned
by
a
//@{
...
//@}
blo
ckor
a
/*@{*/
...
/*@}*/
blo
ckif
you
pre
fer
Cst
yle
com
men
ts.
Note
that
the
mem
ber
sof
the
gro
up
should
be
physc
iall
yin
side
the
mem
ber
gro
up’s
body.
Bef
ore
the
open
ing
mar
ker
of
ablo
cka
separ
ate
com
men
tblo
ckm
aybe
pla
ced.
This
blo
cksh
ould
conta
in
the
@nam
e(o
r\
nam
e)co
mm
and
and
isuse
dto
spec
ify
the
hea
der
of
the
gro
up.
Opti
onal
ly,
the
com
men
t
blo
ckm
ayal
soco
nta
inm
ore
det
aile
din
form
atio
nab
out
the
gro
up.
Nes
ting
of
mem
ber
gro
ups
isnot
allo
wed
.
Ifal
lm
ember
sof
am
ember
gro
up
insi
de
acl
ass
hav
eth
esa
me
type
and
pro
tect
ion
level
(for
inst
ance
all
are
stat
icpubli
cm
ember
s),th
enth
ew
hole
mem
ber
gro
up
isdis
pla
yed
asa
subgro
up
of
the
type/
pro
tect
ion
Use
rM
an
ua
lfo
rD
ox
yg
en1
.5.6
,w
ritt
enb
yD
imit
riva
nH
eesc
hc ©
19
97
-20
06
12
TAGNAME=VALUE
or
TAGNAME=VALUE1VALUE2...
You
can
pro
bab
lyle
ave
the
val
ues
of
most
tags
ina
gen
erat
edte
mpla
teco
nfi
gura
tion
file
toth
eir
def
ault
val
ue.
See
sect
ion
Confi
gura
tion
for
more
det
ails
about
the
confi
gura
tion
file
.
Ifyou
do
notw
ish
toed
itth
eco
nfi
gfi
lew
ith
ate
xted
itor,
you
should
hav
ea
look
atdoxyw
izar
d,w
hic
his
a
GU
Ifr
ont-
end
that
can
crea
te,re
adan
dw
rite
doxygen
confi
gura
tion
file
s,an
dal
low
sse
ttin
gco
nfi
gura
tion
opti
ons
by
ente
ring
them
via
dia
logs.
For
asm
all
pro
ject
consi
stin
gof
afe
wC
and/o
rC
++
sourc
ean
dhea
der
file
s,you
can
leav
eIN
PU
Tta
g
empty
and
doxygen
wil
lse
arch
for
sourc
esin
the
curr
ent
dir
ecto
ry.
Ifyou
hav
ea
larg
erpro
ject
consi
stin
gof
aso
urc
edir
ecto
ryor
tree
you
should
assi
gn
the
root
dir
ecto
ryor
dir
ecto
ries
toth
eIN
PU
Tta
g,
and
add
one
or
more
file
pat
tern
sto
the
FIL
EPA
TT
ER
NS
tag
(for
inst
ance
∗.cpp
∗.h
).O
nly
file
sth
atm
atch
one
of
the
pat
tern
sw
ill
be
par
sed
(if
the
pat
tern
sar
eom
itte
da
list
of
sourc
eex
tensi
ons
isuse
d).
For
recu
rsiv
epar
sing
of
aso
urc
etr
eeyou
must
set
the
RE
CU
RS
IVE
tag
to
YES
.T
ofu
rther
fine-
tune
the
list
of
file
sth
atis
par
sed
the
EX
CL
UD
Ean
dE
XC
LU
DE
PAT
TE
RN
Sta
gs
can
be
use
d.
To
om
ital
ltest
dir
ecto
ries
from
aso
urc
etr
eefo
rin
stan
ce,one
could
use
:
EXCLUDE_PATTERNS=*/test/*
Doxygen
looks
atth
efi
le’s
exte
nsi
on
todet
erm
ine
how
topar
sea
file
.If
afi
lehas
an.idl
or.odl
exte
nsi
on
itis
trea
ted
asan
IDL
file
.If
ithas
a.java
exte
nsi
on
itis
trea
ted
asa
file
wri
tten
inJa
va.
Fil
es
endin
gw
ith.cs
are
trea
ted
asC
#fi
les
and
the.py
exte
nsi
on
sele
cts
the
Pyth
on
par
ser.
Fin
ally
,fi
les
wit
h
the
exte
nsi
ons.php
,.php4
,.inc
or.phtml
are
trea
ted
asP
HP
sourc
es.
Any
oth
erex
tensi
on
ispar
sed
asif
itis
aC
/C+
+fi
le,w
her
efi
les
that
end
wit
h.m
are
trea
ted
asO
bje
ctiv
e-C
sourc
efi
les.
Ifyou
star
tusi
ng
doxygen
for
anex
isti
ng
pro
ject
(thus
wit
hout
any
docu
men
tati
on
that
doxygen
isaw
are
of)
,you
can
stil
lget
anid
eaof
what
the
stru
cture
isan
dhow
the
docu
men
ted
resu
ltw
ould
look
like.
To
do
so,
you
must
set
the
EX
TR
AC
TA
LL
tag
inth
eco
nfi
gura
tion
file
toYES
.T
hen
,doxygen
wil
lpre
tend
ever
yth
ing
inyour
sourc
esis
docu
men
ted.
Ple
ase
note
that
asa
conse
quen
cew
arnin
gs
aboutundocu
men
ted
mem
ber
sw
ill
not
be
gen
erat
edas
long
asE
XT
RA
CT
AL
Lis
set
toYES
.
To
anal
yse
anex
isti
ng
pie
ceof
soft
war
eit
isuse
ful
tocr
oss
-ref
eren
cea
(docu
men
ted)
enti
tyw
ith
its
defi
ni-
tion
inth
eso
urc
efi
les.
Doxygen
wil
lgen
erat
esu
chcr
oss
-ref
eren
ces
ifyou
set
the
SO
UR
CE
BR
OW
SE
R
tag
toYES
.It
can
also
incl
ude
the
sourc
esdir
ectl
yin
toth
edocu
men
tati
on
by
sett
ing
INL
INE
SO
UR
CE
S
toYES
(this
can
be
han
dy
for
code
revie
ws
for
inst
ance
).
8S
tep
2:
Ru
nn
ing
do
xy
gen
To
gen
erat
eth
edocu
men
tati
on
you
can
now
ente
r:
doxygen<config-file>
Dep
endin
gon
your
sett
ings
doxygen
wil
lcr
eatehtml
,rtf
,latex
,xml
and/o
rman
dir
ecto
ries
insi
de
the
outp
utdir
ecto
ry.
As
the
nam
essu
gges
tth
ese
dir
ecto
ries
conta
inth
egen
erat
eddocu
men
tati
on
inH
TM
L,
RT
F,LA
T EX
,X
ML
and
Unix
-Man
pag
efo
rmat
.
The
def
ault
outp
ut
dir
ecto
ryis
the
dir
ecto
ryin
whic
hdoxygen
isst
arte
d.
The
root
dir
ecto
ryto
whic
h
the
outp
ut
isw
ritt
enca
nbe
chan
ged
usi
ng
the
OU
TP
UT
DIR
EC
TO
RY
.T
he
form
atsp
ecifi
cdir
ecto
ry
wit
hin
the
outp
utd
irec
tory
can
be
sele
cted
usi
ng
the
HT
ML
OU
TP
UT
,RT
FO
UT
PU
T,L
AT
EX
OU
TP
UT
,
XM
LO
UT
PU
T,
and
MA
NO
UT
PU
Tta
gs
of
the
confi
gura
tion
file
.If
the
outp
ut
dir
ecto
rydoes
not
exis
t,
doxygen
wil
ltr
yto
crea
teit
for
you
(but
itw
ill
not
try
tocr
eate
aw
hole
pat
hre
curs
ivel
y,li
kemkdir
-p
does
).
Use
rM
an
ua
lfo
rD
ox
yg
en1
.5.6
,w
ritt
enb
yD
imit
riva
nH
eesc
hc ©
19
97
-20
06
8.1
HT
ML
ou
tpu
t13
8.1
HT
ML
ou
tpu
t
The
gen
erat
edH
TM
Ldocu
men
tati
on
can
be
vie
wed
by
poin
ting
aH
TM
Lbro
wse
rto
theindex.html
file
inth
ehtml
dir
ecto
ry.
For
the
bes
tre
sult
sa
bro
wse
rth
atsu
pport
sca
scad
ing
style
shee
ts(C
SS
)sh
ould
be
use
d(I
’musi
ng
Mozi
lla,
Saf
ari,
Konquer
or,
and
som
etim
esIE
6to
test
the
gen
erat
edoutp
ut)
.
Som
eof
the
feat
ure
sth
eH
TM
Lse
ctio
n(s
uch
asG
EN
ER
AT
ET
RE
EV
IEW
)re
quir
ea
bro
wse
rth
atsu
pport
s
DH
TM
Lan
dJa
vas
crip
t.
Ifyou
pla
nto
use
the
sear
chen
gin
e(s
eeS
EA
RC
HE
NG
INE
),you
should
vie
wth
eH
TM
Loutp
ut
via
a
PH
P-e
nab
led
web
serv
er(e
.g.
apac
he
wit
hth
eP
HP
module
inst
alle
d).
8.2
La
TeX
ou
tpu
t
The
gen
erat
edLA
T EX
docu
men
tati
on
must
firs
tbe
com
pil
edby
aLA
T EX
com
pil
er(I
use
are
centte
TeX
dis
tri-
buti
on).
To
sim
pli
fyth
epro
cess
of
com
pil
ing
the
gen
erat
eddocu
men
tati
on,doxygen
wri
tes
aMakefile
into
thelatex
dir
ecto
ry.
The
conte
nts
and
targ
ets
inth
eMakefile
dep
end
on
the
sett
ing
of
US
EP
DF
LA
TE
X.If
itis
dis
able
d(s
et
toNO
),th
enty
pin
gmake
inth
elatex
dir
ecto
rya
dvi
file
call
edrefman.dvi
wil
lbe
gen
erat
ed.
This
file
can
then
be
vie
wed
usi
ngxdvi
or
conv
erte
din
toa
Post
Scr
ipt
filerefman.ps
by
typin
gmakeps
(this
requir
esdvips
).
To
put2
pag
eson
one
physi
calpag
eusemakeps2on1
inst
ead.
The
resu
ltin
gP
ost
Scr
iptfi
leca
nbe
send
toa
Post
Scr
ipt
pri
nte
r.If
you
do
not
hav
ea
Post
Scr
ipt
pri
nte
r,you
can
try
touse
ghost
scri
pt
toco
nver
t
Post
Scr
ipt
into
som
ethin
gyour
pri
nte
runder
stan
ds.
Conv
ersi
on
toP
DF
isal
soposs
ible
ifyou
hav
ein
stal
led
the
ghost
scri
pt
inte
rpre
ter;
just
typemakepdf
(ormakepdf2on1
).
To
get
the
bes
tre
sult
sfo
rP
DF
outp
ut
you
should
set
the
PD
FH
YP
ER
LIN
KS
and
US
EP
DF
LA
TE
Xta
gs
toYES
.In
this
case
theMakefile
wil
lonly
conta
ina
targ
etto
buil
drefman.pdf
dir
ectl
y.
8.3
RT
Fo
utp
ut
Doxygen
com
bin
esth
eR
TF
outp
ut
toa
single
file
call
edre
fman
.rtf
.T
his
file
isopti
miz
edfo
rim
port
ing
into
the
Mic
roso
ftW
ord
.C
erta
inin
form
atio
nis
enco
ded
usi
ng
fiel
d.
To
show
the
actu
alval
ue
you
nee
d
tose
lect
all
(Edit
-se
lect
all)
and
then
toggle
fiel
ds
(rig
ht
clic
kan
dse
lect
the
opti
on
from
the
dro
pdow
n
men
u).
8.4
XM
Lo
utp
ut
The
XM
Loutp
utco
nsi
sts
of
ast
ruct
ure
d”d
um
p”
of
the
info
rmat
ion
gat
her
edby
doxygen
.E
ach
com
pound
(cla
ss/n
ames
pac
e/fi
le/.
..)
has
its
ow
nX
ML
file
and
ther
eis
also
anin
dex
file
call
edin
dex
.xm
l.
Afi
leca
lled
com
bin
e.xsl
tX
SL
Tsc
ript
isal
sogen
erat
edan
dca
nbe
use
dto
com
bin
eal
lX
ML
file
sin
toa
single
file
.
Doxygen
also
gen
erat
estw
oX
ML
schem
afi
les
index
.xsd
(for
the
index
file
)an
dco
mpound.x
sd(f
or
the
com
pound
file
s).
This
schem
afi
ledes
crib
esth
eposs
ible
elem
ents
,th
eir
attr
ibute
san
dhow
they
are
stru
c-
ture
d,
i.e.
itth
edes
crib
esth
egra
mm
arof
the
XM
Lfi
les
and
can
be
use
dfo
rval
idat
ion
or
tost
eer
XS
LT
scri
pts
.
Inth
ead
don/d
oxm
lpar
ser
dir
ecto
ryyou
can
find
apar
ser
libra
ryfo
rre
adin
gth
eX
ML
outp
ut
pro
duce
dby
doxygen
inan
incr
emen
talw
ay(s
eead
don/d
oxm
lpar
ser/
incl
ude/
doxm
lintf
.hfo
rth
ein
terf
ace
of
the
libra
ry)
Use
rM
an
ua
lfo
rD
ox
yg
en1
.5.6
,w
ritt
enb
yD
imit
riva
nH
eesc
hc ©
19
97
-20
06
28
Thisisthe\refgroup_label"link"tothisgroup.
The
pri
ori
ties
of
gro
upin
gdefi
nit
ions
are
(fro
mhig
hes
tto
low
est)
:\i
ngro
up
,\d
efgro
up
,\
addto
gro
up,
\wea
kgro
up.
The
last
com
man
dis
exac
tly
like\a
ddto
gro
up
wit
ha
low
erpri
ori
ty.
Itw
asad
ded
toal
low
”laz
y”
gro
upin
gdefi
nit
ions:
you
can
use
com
man
ds
wit
ha
hig
her
pri
ori
tyin
your
.hfi
les
todefi
ne
the
hie
rarc
hy
and\w
eakgro
up
in.c
file
sw
ithout
hav
ing
todupli
cate
the
hie
rarc
hy
exac
tly.
Exam
ple
:
/**@defgroupgroup1TheFirstGroup
*Thisisthefirstgroup
*@{
*/
/**@briefclassC1ingroup1*/
classC1{};
/**@briefclassC2ingroup1*/
classC2{};
/**functioningroup1*/
voidfunc(){}
/**@}*///endofgroup1
/**
*@defgroupgroup2TheSecondGroup
*Thisisthesecondgroup
*/
/**@defgroupgroup3TheThirdGroup
*Thisisthethirdgroup
*/
/**@defgroupgroup4TheFourthGroup
*@ingroupgroup3
*Group4isasubgroupofgroup3
*/
/**
*@ingroupgroup2
*@briefclassC3ingroup2
*/
classC3{};
/**@ingroupgroup2
*@briefclassC4ingroup2
*/
classC4{};
/**@ingroupgroup3
*@briefclassC5in@linkgroup3thethirdgroup@endlink.
*/
classC5{};
/**@ingroupgroup1group2group3group4
*namespaceN1isinfourgroups
*@sa@linkgroup1Thefirstgroup@endlink,group2,group3,group4
* *Alsosee@refmypage2
*/
namespaceN1{};
/**@file
*@ingroupgroup3
*@briefthisfileingroup3
Use
rM
an
ua
lfo
rD
ox
yg
en1
.5.6
,w
ritt
enb
yD
imit
riva
nH
eesc
hc ©
19
97
-20
06
27
To
avoid
putt
ing\i
ngro
up
com
man
ds
inth
edocu
men
tati
on
for
each
mem
ber
you
can
also
gro
up
mem
ber
s
toget
her
by
the
open
mar
ker@{
bef
ore
the
gro
up
and
the
closi
ng
mar
ker@}
afte
rth
egro
up.
The
mar
ker
s
can
be
put
inth
edocu
men
tati
on
of
the
gro
up
defi
nit
ion
or
ina
separ
ate
docu
men
tati
on
blo
ck.
Gro
ups
them
selv
esca
nal
sobe
nes
ted
usi
ng
thes
egro
upin
gm
arker
s.
You
wil
lget
aner
ror
mes
sage
when
you
use
the
sam
egro
up
label
more
than
once
.If
you
don’t
wan
t
doxygen
toen
forc
euniq
ue
label
s,th
enyou
can
use
\addto
gro
up
inst
ead
of\d
efgro
up.
Itca
nbe
use
d
exac
tly
like\d
efgro
up
,but
when
the
gro
up
has
bee
ndefi
ned
alre
ady,
then
itsi
lentl
ym
erges
the
exis
ting
docu
men
tati
on
wit
hth
enew
one.
The
titl
eof
the
gro
up
isopti
onal
for
this
com
man
d,so
you
can
use
/**\addtogroup<label>*/
/*\@{*/
/*\@}*/
toad
dad
dit
ional
mem
ber
sto
agro
up
that
isdefi
ned
inm
ore
det
ail
else
wher
e.
Note
that
com
pound
enti
ties
(lik
ecl
asse
s,fi
les
and
nam
espac
es)
can
be
put
into
mult
iple
gro
ups,
but
mem
-
ber
s(l
ike
var
iable
,fu
nct
ions,
typed
efs
and
enum
s)ca
nonly
be
am
ember
of
one
gro
up
(this
rest
rict
ion
is
inpla
ceto
avoid
ambig
uous
linkin
gta
rget
sin
case
am
ember
isnot
docu
men
ted
inth
eco
nte
xt
of
its
clas
s,
nam
espac
eor
file
,but
only
vis
ible
aspar
tof
agro
up).
Doxygen
wil
lput
mem
ber
sin
toth
egro
up
whose
defi
nit
ion
has
the
hig
hes
t”p
riori
ty”:
e.g.
An
expli
cit
\in
gro
up
over
rides
anim
pli
cit
gro
upin
gdefi
nit
ion
via@{@}.
Confl
icti
ng
gro
upin
gdefi
nit
ions
wit
hth
e
sam
epri
ori
tytr
igger
aw
arnin
g,u
nle
ssone
defi
nit
ion
was
for
am
ember
wit
houta
ny
expli
citd
ocu
men
tati
on.
The
foll
ow
ing
exam
ple
puts
Var
InA
into
gro
up
Aan
dsi
lentl
yre
solv
esth
eco
nfl
ict
for
Inte
ger
Var
iable
by
putt
ing
itin
togro
up
IntV
aria
ble
s,bec
ause
the
seco
nd
inst
ance
of
Inte
ger
Var
iable
isundocu
men
ted:
/**
*\ingroupA
*/
externintVarInA;
/**
*\defgroupIntVariablesGlobalintegervariables
*/
/*@{*/
/**anintegervariable*/
externintIntegerVariable;
/*@}*/
....
/**
*\defgroupVariablesGlobalvariables
*/
/*@{*/
/**avariableingroupA*/
intVarInA;
intIntegerVariable;
/*@}*/
The\
ref
com
man
dca
nbe
use
dto
refe
rto
agro
up.
The
firs
tar
gum
ent
of
the\r
efco
mm
and
should
be
gro
up’s
label
.T
ouse
acu
stom
link
nam
e,you
can
put
the
nam
eof
the
links
indouble
quote
saf
ter
the
label
,as
show
nby
the
foll
ow
ing
exam
ple
Use
rM
an
ua
lfo
rD
ox
yg
en1
.5.6
,w
ritt
enb
yD
imit
riva
nH
eesc
hc ©
19
97
-20
06
8.5
Man
page
ou
tpu
t14
8.5
Ma
np
ag
eo
utp
ut
The
gen
erat
edm
anpag
esca
nbe
vie
wed
usi
ng
theman
pro
gra
m.
You
do
nee
dto
mak
esu
reth
em
an
dir
ecto
ryis
inth
em
anpat
h(s
eeth
eMANPATH
envir
onm
ent
var
iable
).N
ote
that
ther
ear
eso
me
lim
itat
ions
toth
eca
pab
ilit
ies
of
the
man
pag
efo
rmat
,so
som
ein
form
atio
n(l
ike
clas
sdia
gra
ms,
cross
refe
rence
san
d
form
ula
s)w
ill
be
lost
.
9S
tep
3:
Do
cum
enti
ng
the
sou
rces
Alt
hough
docu
men
ting
the
sourc
esis
pre
sente
das
step
3,
ina
new
pro
ject
this
should
of
cours
ebe
step
1.
Her
eI
assu
me
you
alre
ady
hav
eso
me
code
and
you
wan
tdoxygen
togen
erat
ea
nic
edocu
men
tdes
crib
ing
the
AP
Ian
dm
aybe
the
inte
rnal
sas
wel
l.
Ifth
eE
XT
RA
CT
AL
Lopti
on
isse
ttoNO
inth
eco
nfi
gura
tion
file
(the
def
ault
),th
endoxygen
wil
lonly
gen
erat
edocu
men
tati
on
for
docu
men
ted
mem
ber
s,fi
les,
clas
ses
and
nam
espac
es.
So
how
do
you
docu
men
t
thes
e?F
or
mem
ber
s,cl
asse
san
dnam
espac
esth
ere
are
bas
ical
lytw
oopti
ons:
1.
Pla
cea
spec
ial
docu
men
tati
on
blo
ckin
front
of
the
dec
lara
tion
or
defi
nit
ion
of
the
mem
ber
,cl
ass
or
nam
espac
e.F
or
file
,cl
ass
and
nam
espac
em
ember
sit
isal
soal
low
edto
pla
ceth
edocu
men
tion
dir
ectl
yaf
ter
the
mem
ber
.S
eese
ctio
nS
pec
ial
docu
men
tati
on
blo
cks
tole
arn
more
about
spec
ial
docu
men
tati
on
blo
cks.
2.
Pla
cea
spec
ial
docu
men
tati
on
blo
ckso
mew
her
eel
se(a
noth
erfi
leor
anoth
erlo
cati
on)
and
put
a
stru
ctura
lco
mm
and
inth
edocu
men
tati
on
blo
ck.
Ast
ruct
ura
lco
mm
and
links
adocu
men
tati
on
blo
ck
toa
cert
ain
enti
tyth
atca
nbe
docu
men
ted
(e.g
.a
mem
ber
,cl
ass,
nam
espac
eor
file
).S
eese
ctio
n
Docu
men
tati
on
atoth
erpla
ces
tole
arn
more
about
stru
ctura
lco
mm
ands.
Fil
esca
nonly
be
docu
men
ted
usi
ng
the
seco
nd
opti
on,
since
ther
eis
no
way
toput
adocu
men
tati
on
blo
ckbef
ore
afi
le.
Of
cours
e,fi
lem
ember
s(f
unct
ions,
var
iable
,ty
ped
efs,
defi
nes
)do
not
nee
dan
expli
cit
stru
ctura
lco
mm
and;
just
putt
ing
asp
ecia
ldocu
men
tati
on
blo
ckin
front
or
beh
ind
them
wil
ldo.
The
text
insi
de
asp
ecia
ldocu
men
tati
on
blo
ckis
par
sed
bef
ore
itis
wri
tten
toth
eH
TM
Lan
d/o
rLA
T EX
outp
ut
file
s.
Duri
ng
par
sing
the
foll
ow
ing
step
sta
ke
pla
ce:
•T
he
spec
ial
com
man
ds
insi
de
the
docu
men
tati
on
are
exec
ute
d.
See
sect
ion
Spec
ial
Com
man
ds
for
anover
vie
wof
all
com
man
ds.
•If
ali
ne
star
tsw
ith
som
ew
hit
espac
efo
llow
edby
one
or
more
aste
risk
s(∗
)an
dth
enopti
onal
lym
ore
whit
espac
e,th
enal
lw
hit
espac
ean
das
teri
sks
are
rem
oved
.
•A
llre
sult
ing
bla
nk
lines
are
trea
ted
asa
par
agra
ph
separ
ators
.T
his
saves
you
from
pla
cing
new
-
par
agra
ph
com
man
ds
yours
elf
inord
erto
mak
eth
egen
erat
eddocu
men
tati
on
read
able
.
•L
inks
are
crea
ted
for
word
sco
rres
pondin
gto
docu
men
ted
clas
ses
(unle
ssth
ew
ord
ispre
ceded
by
a
%;
then
the
word
wil
lnot
be
linked
and
the
%si
gn
isre
moved
).
•L
inks
tom
ember
sar
ecr
eate
dw
hen
cert
ain
pat
tern
sar
efo
und
inth
ete
xt.
See
sect
ion
Auto
mat
icli
nk
gen
erat
ion
for
more
info
rmat
ion
on
how
the
auto
mat
icli
nk
gen
erat
ion
work
s.
•H
TM
Lta
gs
that
are
inth
edocu
men
tati
on
are
inte
rpre
ted
and
conv
erte
dto
LAT E
Xeq
uiv
alen
tsfo
rth
e
LAT E
Xoutp
ut.
See
sect
ion
HT
ML
Com
man
ds
for
anover
vie
wof
all
support
edH
TM
Lta
gs.
Docu
men
ting
the
code
Use
rM
an
ua
lfo
rD
ox
yg
en1
.5.6
,w
ritt
enb
yD
imit
riva
nH
eesc
hc ©
19
97
-20
06
15
10
Sp
ecia
ld
ocu
men
tati
on
blo
cks
Asp
ecia
ldocu
men
tati
on
blo
ckis
aC
or
C+
+st
yle
com
men
tblo
ckw
ith
som
ead
dit
ional
mar
kin
gs,
so
doxygen
know
sit
isa
pie
ceof
docu
men
tati
on
that
nee
ds
toen
dup
inth
egen
erat
eddocu
men
tati
on.
For
Pyth
on
and
VH
DL
code
ther
ear
ea
dif
fere
nt
com
men
tco
nven
tions,
whic
hca
nbe
found
inse
ctio
nS
pec
ial
docu
men
tati
on
blo
cks
inP
yth
on
and
Spec
ial
docu
men
tati
on
blo
cks
inV
HD
Lre
spec
tivel
y.
For
each
code
item
ther
ear
etw
o(o
rin
som
eca
ses
thre
e)ty
pes
of
des
crip
tions,
whic
hto
get
her
form
the
docu
men
tati
on:
abri
efdes
crip
tion
and
det
ail
eddes
crip
tion,
both
are
opti
onal
.F
or
met
hods
and
func-
tions
ther
eis
also
ath
ird
type
of
des
crip
tion,
the
soca
lled
”in
body”
des
crip
tion,
whic
hco
nsi
sts
of
the
conca
tenat
ion
of
all
com
men
tblo
cks
found
wit
hin
the
body
of
the
met
hod
or
funct
ion.
Hav
ing
more
than
one
bri
efor
det
aile
ddes
crip
tion
isal
low
ed(b
ut
not
reco
mm
ended
,as
the
ord
erin
whic
h
the
des
crip
tions
wil
lap
pea
ris
not
spec
ified
).
As
the
nam
esu
gges
t,a
bri
efdes
crip
tion
isa
short
one-
liner
,w
her
eas
the
det
aile
ddes
crip
tion
pro
vid
es
longer
,m
ore
det
aile
ddocu
men
tati
on.
An
”in
body”
des
crip
tion
can
also
act
asa
det
aile
ddes
crip
tion
or
can
des
crib
ea
coll
ecti
on
of
imple
men
tati
on
det
ails
.F
or
the
HT
ML
outp
ut
bri
efdes
crip
tions
are
also
use
topro
vid
eto
olt
ips
atpla
ces
wher
ean
item
isre
fere
nce
d.
Ther
ear
ese
ver
alw
ays
tom
ark
aco
mm
ent
blo
ckas
adet
aile
ddes
crip
tion:
1.
You
can
use
the
JavaD
oc
style
,w
hic
hco
nsi
stof
aC
-sty
leco
mm
ent
blo
ckst
arti
ng
wit
htw
o∗’
s,li
ke
this
:
/**
*...text...
*/
2.
or
you
can
use
the
Qt
style
and
add
anex
clam
atio
nm
ark
(!)
afte
rth
eopen
ing
of
aC
-sty
leco
mm
ent
blo
ck,as
show
nin
this
exam
ple
:
/*!
*...text...
*/
Inboth
case
sth
ein
term
edia
te∗’
sar
eopti
onal
,so
/*!
...text...
*/
isal
soval
id.
3.
Ath
ird
alte
rnat
ive
isto
use
ablo
ckof
atle
ast
two
C+
+co
mm
ent
lines
,w
her
eea
chli
ne
star
tsw
ith
anad
dit
ional
slas
hor
anex
clam
atio
nm
ark.
Her
ear
eex
ample
sof
the
two
case
s:
///
///...text...
///
or
//!
//!...text...
//!
4.
Som
epeo
ple
like
tom
ake
thei
rco
mm
ent
blo
cks
more
vis
ible
inth
edocu
men
tati
on.
For
this
purp
ose
you
can
use
the
foll
ow
ing:
Use
rM
an
ua
lfo
rD
ox
yg
en1
.5.6
,w
ritt
enb
yD
imit
riva
nH
eesc
hc ©
19
97
-20
06
26
*-subitem3
*-listitem2
*.
*Moretextinthesameparagraph.
* *Moretextinanewparagraph.
*/
Usi
ng
HT
ML
com
man
ds
Ifyou
like
you
can
also
use
HT
ML
com
man
ds
insi
de
the
docu
men
tati
on
blo
cks.
Usi
ng
thes
eco
mm
ands
has
the
advan
tage
that
itis
more
nat
ura
lfo
rli
stit
ems
that
consi
stof
mult
iple
par
agra
phs.
Her
eis
the
above
exam
ple
wit
hH
TM
Lco
mm
ands:
/*!
*Alistofevents:
*<ul>
*<li>mouseevents
*<ol>
*<li>mousemoveevent
*<li>mouseclickevent\n
*Moreinfoabouttheclickevent.
*<li>mousedoubleclickevent
*</ol>
*<li>keyboardevents
*<ol>
*<li>keydownevent
*<li>keyupevent
*</ol>
*</ul>
*Moretexthere.
*/
Note
: Inth
isca
seth
ein
den
tati
on
isnot
import
ant.
Usi
ng\
arg
or
@li
For
com
pat
ibil
ity
wit
hth
eT
roll
Tec
h’s
inte
rnal
docu
men
tati
on
tool
and
wit
hK
Doc,
doxygen
has
two
com
man
ds
that
can
be
use
dto
crea
tesi
mple
unnes
ted
list
s.
See
\ar
gan
d\l
ifo
rm
ore
info
.
Gro
upin
gD
oxygen
has
thre
em
echan
ism
sto
gro
up
thin
gs
toget
her
.O
ne
mec
han
ism
work
sat
aglo
bal
level
,
crea
ting
anew
pag
efo
rea
chgro
up.
Thes
egro
ups
are
call
ed’m
odule
s’in
the
docu
men
tati
on.
The
seco
nd
mec
han
ism
work
sw
ithin
am
ember
list
of
som
eco
mpound
enti
ty,
and
isre
fere
dto
asa
’mem
ber
gro
ups’
.
For
pag
esth
ere
isa
thir
dgro
upin
gm
echan
ism
refe
rred
toas
subpag
ing
.
15
Mo
du
les
Module
sar
ea
way
togro
up
thin
gs
toget
her
on
ase
par
ate
pag
e.Y
ou
can
docu
men
ta
gro
up
asa
whole
,as
wel
las
all
indiv
idual
mem
ber
s.M
ember
sof
agro
up
can
be
file
s,nam
espac
es,cl
asse
s,fu
nct
ions,
var
iable
s,
enum
s,ty
ped
efs,
and
defi
nes
,but
also
oth
ergro
ups.
To
defi
ne
agro
up
,you
should
put
the\
def
gro
up
com
man
din
asp
ecia
lco
mm
ent
blo
ck.
The
firs
tar
gum
ent
of
the
com
man
dis
ala
bel
that
should
uniq
uel
yid
enti
fyth
egro
up.
The
seco
nd
argum
ent
isth
enam
eor
titl
eof
the
gro
up
asit
should
appea
rin
the
docu
men
tati
on.
You
can
mak
ean
enti
tya
mem
ber
of
asp
ecifi
cgro
up
by
putt
ing
a\
ingro
up
com
man
din
side
its
docu
men
-
tati
on
blo
ck.
Use
rM
an
ua
lfo
rD
ox
yg
en1
.5.6
,w
ritt
enb
yD
imit
riva
nH
eesc
hc ©
19
97
-20
06
25
Usi
ng
dash
es
By
putt
ing
anum
ber
of
colu
mn-a
ligned
min
us
signs
atth
est
art
of
ali
ne,
abull
etli
stw
ill
auto
mat
ical
lybe
gen
erat
ed.
Num
ber
edli
sts
can
also
be
gen
erat
edby
usi
ng
am
inus
foll
ow
edby
ahas
h.
Nes
ting
of
list
sis
allo
wed
and
isbas
edon
inden
tati
on
of
the
item
s.
Her
eis
anex
ample
:
/*!
*Alistofevents:
*-mouseevents
*-#mousemoveevent
*-#mouseclickevent\n
*Moreinfoabouttheclickevent.
*-#mousedoubleclickevent
*-keyboardevents
*-#keydownevent
*-#keyupevent
* *Moretexthere.
*/
The
resu
ltw
ill
be:
Ali
stof
even
ts:
•m
ouse
even
ts
1.
mouse
move
even
t
2.
mouse
clic
kev
ent
More
info
about
the
clic
kev
ent.
3.
mouse
double
clic
kev
ent
•key
boar
dev
ents
1.
key
dow
nev
ent
2.
key
up
even
t
More
text
her
e.
Ifyou
use
tabs
for
inden
tati
on
wit
hin
list
s,ple
ase
mak
esu
reth
atT
AB
SIZ
Ein
the
confi
gura
tion
file
isse
t
toth
eco
rrec
tta
bsi
ze.
You
can
end
ali
stby
star
ting
anew
par
agra
ph
or
by
putt
ing
adot
(.)
on
anem
pty
line
atth
esa
me
inden
t
level
asth
eli
styou
would
like
toen
d.
Her
eis
anex
ample
that
spea
ks
for
itse
lf:
/**
*Textbeforethelist
*-listitem1
*-subitem1
*-subsubitem1
*-subsubitem2
*.
*Thedotaboveendsthesubsubitemlist.
*Moretextforthefirstsubitem
*.
*Thedotaboveendsthefirstsubitem.
*Moretextforthefirstlistitem
*-subitem2
Use
rM
an
ua
lfo
rD
ox
yg
en1
.5.6
,w
ritt
enb
yD
imit
riva
nH
eesc
hc ©
19
97
-20
06
16
/********************************************//**
*...text
***********************************************/
(note
the
2sl
ashes
toen
dth
enorm
alco
mm
ent
blo
ckan
dst
art
asp
ecia
lco
mm
ent
blo
ck).
or
/////////////////////////////////////////////////
///...text...
/////////////////////////////////////////////////
For
the
bri
efdes
crip
tion
ther
ear
eal
sose
ver
alposi
bil
itie
s:
1.
One
could
use
the\
bri
efco
mm
and
wit
hone
of
the
above
com
men
tblo
cks.
This
com
man
den
ds
at
the
end
of
apar
agra
ph,so
the
det
aile
ddes
crip
tion
foll
ow
saf
ter
anem
pty
line.
Her
eis
anex
ample
:
/*!\briefBriefdescription.
*Briefdescriptioncontinued.
* *Detaileddescriptionstartshere.
*/
2.
IfJA
VA
DO
CA
UT
OB
RIE
Fis
settoYES
inth
eco
nfi
gura
tion
file
,then
usi
ng
JavaD
oc
style
com
men
t
blo
cks
wil
lau
tom
atic
ally
star
ta
bri
efdes
crip
tion
whic
hen
ds
atth
efi
rst
dot
foll
ow
edby
asp
ace
or
new
line.
Her
eis
anex
ample
:
/**Briefdescriptionwhichendsatthisdot.Detailsfollow
*here.
*/
The
opti
on
has
the
sam
eef
fect
for
mult
i-li
ne
spec
ial
C+
+co
mm
ents
:
///Briefdescriptionwhichendsatthisdot.Detailsfollow
///here.
3.
Ath
ird
opti
on
isto
use
asp
ecia
lC
++
style
com
men
tw
hic
hdoes
not
span
more
than
one
line.
Her
e
are
two
exam
ple
s:
///Briefdescription.
/**Detaileddescription.
*/
or
//!Briefdescripion.
//!Detaileddescription
//!startshere.
Note
the
bla
nk
line
inth
ela
stex
ample
,w
hic
his
requir
edto
separ
ate
the
bri
efdes
crip
tion
from
the
blo
ckco
nta
inin
gth
edet
aile
ddes
crip
tion.
The
JAV
AD
OC
AU
TO
BR
IEF
should
also
be
set
toNO
for
this
case
.
As
you
can
see
doxygen
isquit
efl
exib
le.
The
foll
ow
ing
how
ever
isnot
legal
Use
rM
an
ua
lfo
rD
ox
yg
en1
.5.6
,w
ritt
enb
yD
imit
riva
nH
eesc
hc ©
19
97
-20
06
17
//!Briefdescription,whichis
//!reallyadetaileddescriptionsinceitspansmultiplelines.
/*!Oops,anotherdetaileddescription!
*/
bec
ause
doxygen
only
allo
ws
one
bri
efan
done
det
aile
ddes
crip
tion.
Furt
her
more
,if
ther
eis
one
bri
efdes
crip
tion
bef
ore
adec
lara
tion
and
one
bef
ore
adefi
nit
ion
of
aco
de
item
,
only
the
one
bef
ore
the
dec
lara
tion
wil
lbe
use
d.
Ifth
esa
me
situ
atio
nocc
urs
for
adet
aile
ddes
crip
tion,th
e
one
bef
ore
the
defi
nit
ion
ispre
ferr
edan
dth
eone
bef
ore
the
dec
lara
tion
wil
lbe
ignore
d.
Her
eis
anex
ample
of
adocu
men
ted
pie
ceof
C+
+co
de
usi
ng
the
Qt
style
:
//!
Atestclass.
/*! Amoreelaborateclassdescription.
*/
classTest
{
public:
//!Anenum.
/*!Moredetailedenumdescription.*/
enumTEnum{
TVal1,/*!<EnumvalueTVal1.*/
TVal2,/*!<EnumvalueTVal2.*/
TVal3
/*!<EnumvalueTVal3.*/
}
//!Enumpointer.
/*!Details.*/
*enumPtr,
//!Enumvariable.
/*!Details.*/
enumVar;
//!Aconstructor.
/*! Amoreelaboratedescriptionoftheconstructor.
*/
Test();
//!Adestructor.
/*! Amoreelaboratedescriptionofthedestructor.
*/
˜Test();
//!Anormalmembertakingtwoargumentsandreturninganintegervalue.
/*! \paramaanintegerargument.
\paramsaconstantcharacterpointer.
\returnThetestresults
\saTest(),˜Test(),testMeToo()andpublicVar()
*/
inttestMe(inta,constchar*s);
//!Apurevirtualmember.
/*! \satestMe()
\paramc1thefirstargument.
\paramc2thesecondargument.
*/
virtualvoidtestMeToo(charc1,charc2)=0;
//!Apublicvariable.
Use
rM
an
ua
lfo
rD
ox
yg
en1
.5.6
,w
ritt
enb
yD
imit
riva
nH
eesc
hc ©
19
97
-20
06
24
defPyMethod(self):
pass
##Aclassvariable.
classVar=0;
##@var_memVar
#amembervariable
Sin
cepyth
on
looks
more
like
Java
than
like
Cor
C+
+,
you
should
set
OP
TM
IZE
OU
TP
UT
JAV
AtoYES
inth
eco
nfi
gfi
le.
14
Sp
ecia
ld
ocu
men
tati
on
blo
cks
inV
HD
L
For
VH
DL
aco
mm
ent
norm
ally
star
tw
ith
”–”.
Doxygen
wil
lex
trac
tco
mm
ents
star
ting
wit
h”–
!”.
Ther
e
are
only
two
types
of
com
men
tblo
cks
inV
HD
L;
aone
line
–!
com
men
tre
pre
senti
ng
abri
efdes
crip
-
tion,
and
am
ult
ilin
e–!
com
men
t(w
her
eth
e–!
pre
fix
isre
pea
ted
for
each
line)
repre
senti
ng
adet
aile
d
des
crip
tion.
Com
men
tsar
eal
way
slo
cate
din
front
of
the
item
that
isbei
ng
docu
men
ted
wit
hone
exce
pti
on:
for
port
s
the
com
men
tca
nal
sobe
afte
rth
eit
eman
dis
then
trea
ted
asa
bri
efdes
crip
tion
for
the
port
.
Her
eis
anex
ample
VH
DL
file
wit
hdoxygen
com
men
ts:
-------------------------------------------------------
--!@file
--!@brief2:1Muxusingwith-select
-------------------------------------------------------
--!Usestandardlibrary
libraryieee;
--!Uselogicelements
useieee.std_logic_1164.all;
--!Muxentitybriefdescription
--!Detaileddescriptionofthis
--!muxdesignelement.
entitymux_using_withis
port(
din_0
:in
std_logic;--!Muxfirstinput
din_1
:in
std_logic;--!MuxSecondinput
sel
:in
std_logic;--!Selectinput
mux_out:outstd_logic
--!Muxoutput
);
endentity;
--!@briefArchituredefinitionoftheMUX
--!@detailsMoredetailsaboutthismuxelement.
architecturebehaviorofmux_using_withis
begin with(sel)select
mux_out<=din_0when’0’,
din_1whenothers;
endarchitecture;
To
get
pro
per
lookin
goutp
ut
you
nee
dto
set
OP
TIM
IZE
OU
TP
UT
VH
DL
toYES
inth
eco
nfi
gfi
le.
This
wil
lal
soaf
fect
anum
ber
of
oth
erse
ttin
gs.
When
they
wer
enot
alre
ady
set
corr
ectl
ydoxygen
wil
lpro
duce
aw
arnin
gte
llin
gw
hic
hse
ttin
gs
wher
eover
rule
d.
Lis
tsD
oxygen
pro
vid
esa
num
ber
of
way
sto
crea
teli
sts
of
item
s.
Use
rM
an
ua
lfo
rD
ox
yg
en1
.5.6
,w
ritt
enb
yD
imit
riva
nH
eesc
hc ©
19
97
-20
06
23
13
Sp
ecia
ld
ocu
men
tati
on
blo
cks
inP
yth
on
For
Py
thon
ther
eis
ast
andar
dw
ayof
docu
men
ting
the
code
usi
ng
soca
lled
docu
men
tati
on
stri
ngs.
Such
stri
ngs
are
store
din
doc
and
can
be
retr
ieved
atru
nti
me.
Doxygen
wil
lex
trac
tsu
chco
mm
ents
and
assu
me
they
hav
eto
be
repre
sente
din
apre
form
atte
dw
ay.
"""@packagedocstring
Documentationforthismodule.
Moredetails.
"""
deffunc():
"""Documentationforafunction.
Moredetails.
"""
pass
classPyClass:
"""Documentationforaclass.
Moredetails.
"""
def__init__(self):
"""Theconstructor."""
self._memVar=0;
defPyMethod(self):
"""Documentationforamethod."""
pass
Note
that
inth
isca
senone
of
doxygen
’ssp
ecia
lco
mm
ands
are
support
ed.
Ther
eis
also
anoth
erw
ayto
docu
men
tP
yth
on
code
usi
ng
com
men
tsth
atst
art
wit
h”#
#”.
Thes
ety
pe
of
com
men
tblo
cks
are
more
inli
ne
wit
hth
ew
aydocu
men
tati
on
blo
cks
work
for
the
oth
erla
nguag
es
support
edby
doxygen
and
this
also
allo
ws
the
use
of
spec
ial
com
man
ds.
Her
eis
the
sam
eex
ample
agai
nbut
now
usi
ng
doxygen
style
com
men
ts:
##@packagepyexample
#Documentationforthismodule.
# #Moredetails.
##Documentationforafunction.
# #Moredetails.
deffunc():
pass
##Documentationforaclass.
# #Moredetails.
classPyClass:
##Theconstructor.
def__init__(self):
self._memVar=0;
##Documentationforamethod.
#@paramselfTheobjectpointer.
Use
rM
an
ua
lfo
rD
ox
yg
en1
.5.6
,w
ritt
enb
yD
imit
riva
nH
eesc
hc ©
19
97
-20
06
18
/*! Details.
*/
intpublicVar;
//!Afunctionvariable.
/*! Details.
*/
int(*handler)(inta,intb);
};
The
one-
line
com
men
tsco
nta
ina
bri
efdes
crip
tion,w
her
eas
the
mult
i-li
ne
com
men
tblo
cks
conta
ina
more
det
aile
ddes
crip
tion.
The
bri
efdes
crip
tions
are
incl
uded
inth
em
ember
over
vie
wof
acl
ass,
nam
espac
eor
file
and
are
pri
nte
d
usi
ng
asm
all
ital
icfo
nt
(this
des
crip
tion
can
be
hid
den
by
sett
ing
BR
IEF
ME
MB
ER
DE
SC
toNO
inth
e
confi
gfi
le).
By
def
ault
the
bri
efdes
crip
tions
bec
om
eth
efi
rst
sente
nce
of
the
det
aile
ddes
crip
tions
(but
this
can
be
chan
ged
by
sett
ing
the
RE
PE
AT
BR
IEF
tag
toNO
).B
oth
the
bri
efan
dth
edet
aile
ddes
crip
tions
are
opti
onal
for
the
Qt
style
.
By
def
ault
aJa
vaD
oc
style
docu
men
tati
on
blo
ckbeh
aves
the
sam
ew
ayas
aQ
tst
yle
docu
men
tati
on
blo
ck.
This
isnot
acco
rdin
gth
eJa
vaD
oc
spec
ifica
tion
how
ever
,w
her
eth
efi
rst
sente
nce
of
the
docu
men
tati
on
blo
ckis
auto
mat
ical
lytr
eate
das
abri
efdes
crip
tion.
To
enab
leth
isbeh
avio
ur
you
should
set
JAV
AD
OC
-
AU
TO
BR
IEF
toY
ES
inth
eco
nfi
gura
tion
file
.If
you
enab
leth
isopti
on
and
wan
tto
put
adot
inth
em
iddle
of
ase
nte
nce
wit
hout
endin
git
,you
should
put
abac
ksl
ash
and
asp
ace
afte
rit
.H
ere
isan
exam
ple
:
/**Briefdescription(e.g.\usingonlyafewwords).Detailsfollow.
*/
Her
eis
the
sam
epie
ceof
code
assh
ow
nab
ove,
this
tim
edocu
men
ted
usi
ng
the
JavaD
oc
style
and
JAV
AD
OC
AU
TO
BR
IEF
set
toY
ES
:
/**
*Atestclass.Amoreelaborateclassdescription.
*/
classTest
{
public:
/**
*Anenum.
*Moredetailedenumdescription.
*/
enumTEnum{
TVal1,/**<enumvalueTVal1.*/
TVal2,/**<enumvalueTVal2.*/
TVal3
/**<enumvalueTVal3.*/
}
*enumPtr,/**<enumpointer.Details.*/
enumVar;
/**<enumvariable.Details.*/
/**
*Aconstructor.
*Amoreelaboratedescriptionoftheconstructor.
*/
Test();
/**
*Adestructor.
*Amoreelaboratedescriptionofthedestructor.
Use
rM
an
ua
lfo
rD
ox
yg
en1
.5.6
,w
ritt
enb
yD
imit
riva
nH
eesc
hc ©
19
97
-20
06
19
*/
˜Test();
/**
*anormalmembertakingtwoargumentsandreturninganintegervalue.
*@paramaanintegerargument.
*@paramsaconstantcharacterpointer.
*@seeTest()
*@see˜Test()
*@seetestMeToo()
*@seepublicVar()
*@returnThetestresults
*/
inttestMe(inta,constchar*s);
/**
*Apurevirtualmember.
*@seetestMe()
*@paramc1thefirstargument.
*@paramc2thesecondargument.
*/
virtualvoidtestMeToo(charc1,charc2)=0;
/**
*apublicvariable.
*Details.
*/
intpublicVar;
/**
*afunctionvariable.
*Details.
*/
int(*handler)(inta,intb);
};
Sim
ilar
ly,
ifone
wis
hes
the
firs
tse
nte
nce
of
aQ
tst
yle
docu
men
tati
on
blo
ckto
auto
mat
ical
lybe
trea
ted
as
abri
efdes
crip
tion,one
may
set
QT
AU
TO
BR
IEF
toY
ES
inth
eco
nfi
gura
tion
file
.
Unli
ke
most
oth
erdocu
men
tati
on
syst
ems,
doxygen
also
allo
ws
you
toput
the
docu
men
tati
on
of
mem
ber
s
(incl
udin
gglo
bal
funct
ions)
infr
ont
of
the
defi
nit
ion.
This
way
the
docu
men
tati
on
can
be
pla
ced
inth
e
sourc
efi
lein
stea
dof
the
hea
der
file
.T
his
kee
ps
the
hea
der
file
com
pac
t,an
dal
low
sth
eim
ple
men
ter
of
the
mem
ber
sm
ore
dir
ect
acce
ssto
the
docu
men
tati
on.
As
aco
mpro
mis
eth
ebri
efdes
crip
tion
could
be
pla
ced
bef
ore
the
dec
lara
tion
and
the
det
aile
ddes
crip
tion
bef
ore
the
mem
ber
defi
nit
ion.
11
Pu
ttin
gd
ocu
men
tati
on
aft
erm
emb
ers
Ifyou
wan
tto
docu
men
tth
em
ember
sof
afi
le,
stru
ct,
unio
n,
clas
s,or
enum
,an
dyou
wan
tto
put
the
docu
men
tati
on
for
thes
em
ember
sin
side
the
com
pound,it
isso
met
imes
des
ired
topla
ceth
edocu
men
tati
on
blo
ckaf
ter
the
mem
ber
inst
ead
of
bef
ore
.F
or
this
purp
ose
you
hav
eto
put
anad
dit
ional<
mar
ker
inth
e
com
men
tblo
ck.
Note
that
this
also
work
sfo
rth
epar
amet
ers
of
afu
nct
ion.
Her
ear
eso
me
exam
ple
s:
intvar;/*!<Detaileddescriptionafterthemember*/
This
blo
ckca
nbe
use
dto
put
aQ
tst
yle
det
aile
ddocu
men
tati
on
blo
ckaft
era
mem
ber
.O
ther
way
sto
do
the
sam
ear
e:
intvar;/**<Detaileddescriptionafterthemember*/
Use
rM
an
ua
lfo
rD
ox
yg
en1
.5.6
,w
ritt
enb
yD
imit
riva
nH
eesc
hc ©
19
97
-20
06
22
/*!\filestructcmd.h
\briefADocumentedfile.
Details.
*/
/*!\defMAX(a,b)
\briefAmacrothatreturnsthemaximumof\aaand\ab.
Details.
*/
/*!\vartypedefunsignedintUINT32
\briefAtypedefinitionfora.
Details.
*/
/*!\varinterrno
\briefContainsthelasterrorcode.
\warningNotthreadsafe!
*/
/*!\fnintopen(constchar*pathname,intflags)
\briefOpensafiledescriptor.
\parampathnameThenameofthedescriptor.
\paramflagsOpeningflags.
*/
/*!\fnintclose(intfd)
\briefClosesthefiledescriptor\afd.
\paramfdThedescriptortoclose.
*/
/*!\fnsize_twrite(intfd,constchar
*buf,size_tcount)
\briefWrites\acountbytesfrom\abuftothefiledescriptor\afd.
\paramfdThedescriptortowriteto.
\parambufThedatabuffertowrite.
\paramcountThenumberofbytestowrite.
*/
/*!\fnintread(intfd,char*buf,size_tcount)
\briefReadbytesfromafiledescriptor.
\paramfdThedescriptortoreadfrom.
\parambufThebuffertoreadinto.
\paramcountThenumberofbytestoread.
*/
#defineMAX(a,b)(((a)>(b))?(a):(b))
typedefunsignedintUINT32;
interrno;
intopen(constchar*,int);
intclose(int);
size_twrite(int,constchar*,size_t);
intread(int,char*,size_t);
Bec
ause
each
com
men
tblo
ckin
the
exam
ple
above
conta
ins
ast
ruct
ura
lco
mm
and,al
lth
eco
mm
entblo
cks
could
be
moved
toan
oth
erlo
cati
on
or
inputfi
le(t
he
sourc
efi
lefo
rin
stan
ce),
wit
houta
ffec
ting
the
gen
erat
ed
docu
men
tati
on.
The
dis
advan
tage
of
this
appro
ach
isth
atpro
toty
pes
are
dupli
cate
d,
soal
lch
anges
hav
e
tobe
mad
etw
ice!
Bec
ause
of
this
you
should
firs
tco
nsi
der
ifth
isis
real
lynee
ded
,an
dav
oid
stru
ctura
l
com
man
ds
ifposs
ible
.I
oft
enre
ceiv
eex
ample
sth
atco
nta
in\
fnco
mm
and
inco
mm
ent
blo
cks
whic
har
e
pla
cein
front
of
afu
nct
ion.
This
iscl
earl
ya
case
wher
eth
e\f
nco
mm
and
isre
dundan
tan
dw
ill
only
lead
topro
ble
ms.
Use
rM
an
ua
lfo
rD
ox
yg
en1
.5.6
,w
ritt
enb
yD
imit
riva
nH
eesc
hc ©
19
97
-20
06
21
The
pri
ceyou
pay
for
not
putt
ing
the
docu
men
tati
on
blo
ckdir
ectl
ybef
ore
(or
afte
r)an
item
isth
enee
dto
put
ast
ruct
ura
lco
mm
and
insi
de
the
docu
men
tati
on
blo
ck,w
hic
hle
ads
toso
me
dupli
cati
on
of
info
rmat
ion.
So
inpra
ctic
eyou
should
avo
idth
euse
of
stru
ctura
lco
mm
ands
unle
ssoth
erre
quir
emen
tsfo
rce
you
todo
so.
Str
uct
ura
lco
mm
ands
(lik
eal
loth
erco
mm
ands)
star
tw
ith
abac
ksl
ash
(\),
or
anat
-sig
n(@
)if
you
pre
fer
JavaD
oc
style
,fo
llow
edby
aco
mm
and
nam
ean
done
or
more
par
amet
ers.
For
inst
ance
,if
you
wan
tto
docu
men
tth
ecl
assTest
inth
eex
ample
above,
you
could
hav
eal
soput
the
foll
ow
ing
docu
men
tati
on
blo
ckso
mew
her
ein
the
input
that
isre
adby
doxygen
:
/*!\classTest
\briefAtestclass.
Amoredetailedclassdescription.
*/
Her
eth
esp
ecia
lco
mm
and\class
isuse
dto
indic
ate
that
the
com
men
tblo
ckco
nta
ins
docu
men
tati
on
for
the
clas
sTest
.O
ther
stru
ctura
lco
mm
ands
are:
•\struct
todocu
men
ta
C-s
truct
.
•\union
todocu
men
ta
unio
n.
•\enum
todocu
men
tan
enum
erat
ion
type.
•\fn
todocu
men
ta
funct
ion.
•\var
todocu
men
ta
var
iable
or
typed
efor
enum
val
ue.
•\def
todocu
men
ta
#defi
ne.
•\typedef
todocu
men
ta
type
defi
nit
ion.
•\file
todocu
men
ta
file
.
•\namespace
todocu
men
ta
nam
espac
e.
•\package
todocu
men
ta
Java
pac
kag
e.
•\interface
todocu
men
tan
IDL
inte
rfac
e.
See
sect
ion
Spec
ial
Com
man
ds
for
det
aile
din
form
atio
nab
out
thes
ean
dm
any
oth
erco
mm
ands.
To
docu
men
ta
mem
ber
of
aC
++
clas
s,you
must
also
docu
men
tth
ecl
ass
itse
lf.
The
sam
ehold
sfo
r
nam
espac
es.
To
docu
men
ta
glo
bal
Cfu
nct
ion,
typed
ef,
enum
or
pre
pro
cess
or
defi
nit
ion
you
must
firs
t
docu
men
tth
efi
leth
atco
nta
ins
it(u
sual
lyth
isw
illbe
ahea
der
file
,bec
ause
that
file
conta
ins
the
info
rmat
ion
that
isex
port
edto
oth
erso
urc
efi
les)
.
Let
’sre
pea
tth
at,
bec
ause
itis
oft
enover
looked
:to
docu
men
tglo
bal
obje
cts
(funct
ions,
typed
efs,
enum
,
mac
ros,
etc)
,you
must
docu
men
tth
efi
lein
whic
hth
eyar
edefi
ned
.In
oth
erw
ord
s,th
ere
must
atle
ast
be
a
/*!\file
*/
or
a
/**@file*/
line
inth
isfi
le.
Her
eis
anex
ample
of
aC
hea
der
nam
edstructcmd.h
that
isdocu
men
ted
usi
ng
stru
ctura
lco
mm
ands:
Use
rM
an
ua
lfo
rD
ox
yg
en1
.5.6
,w
ritt
enb
yD
imit
riva
nH
eesc
hc ©
19
97
-20
06
20
or
intvar;//!<Detaileddescriptionafterthemember
//!<
or
intvar;///<Detaileddescriptionafterthemember
///<
Most
oft
enone
only
wan
tsto
put
abri
efdes
crip
tion
afte
ra
mem
ber
.T
his
isdone
asfo
llow
s:
intvar;//!<Briefdescriptionafterthemember
or
intvar;///<Briefdescriptionafterthemember
Note
that
thes
eblo
cks
hav
eth
esa
me
stru
cture
and
mea
nin
gas
the
spec
ial
com
men
tblo
cks
inth
epre
vio
us
sect
ion
only
the<
indic
ates
that
the
mem
ber
islo
cate
din
front
of
the
blo
ckin
stea
dof
afte
rth
eblo
ck.
Her
eis
anex
ample
of
the
use
of
thes
eco
mm
ent
blo
cks:
/*!Atestclass*/
classTest
{
public:
/**
Anenumtype.
*Thedocumentationblockcannotbeputaftertheenum!
*/
enumEnumType
{
intEVal1,
/**<enumvalue1*/
intEVal2
/**<enumvalue2*/
};
voidmember();
//!<amemberfunction.
protected:
intvalue;
/*!<anintegervalue*/
};
Warn
ing:
Thes
eblo
cks
can
on
lybe
use
dto
docu
men
tm
ember
san
dpara
met
ers.
They
cannot
be
use
dto
doc-
um
ent
file
s,cl
asse
s,unio
ns,
stru
cts,
gro
ups,
nam
espac
esan
den
um
sth
emse
lves
.F
urt
her
more
,th
e
stru
ctura
lco
mm
ands
men
tioned
inth
enex
tse
ctio
n(l
ike\class
)ar
eig
nore
din
side
thes
eco
mm
ent
blo
cks.
12
Do
cum
enta
tio
na
to
ther
pla
ces
So
far
we
hav
eas
sum
edth
atth
edocu
men
tati
on
blo
cks
are
alw
ays
loca
ted
infr
ont
of
the
dec
lara
tion
or
defi
nit
ion
of
afi
le,
clas
sor
nam
espac
eor
infr
ont
or
afte
rone
of
its
mem
ber
s.A
lthough
this
isoft
en
com
fort
able
,th
ere
may
som
etim
esbe
reas
ons
toput
the
docu
men
tati
on
som
ewher
eel
se.
For
docu
men
ting
afi
leth
isis
even
requir
edsi
nce
ther
eis
no
such
thin
gas
”in
front
of
afi
le”.
Doxygen
allo
ws
you
toput
your
docu
men
tati
on
blo
cks
pra
ctic
ally
anyw
her
e(t
he
exce
pti
on
isin
side
the
body
of
afu
nct
ion
or
insi
de
anorm
alC
style
com
men
tblo
ck).
Use
rM
an
ua
lfo
rD
ox
yg
en1
.5.6
,w
ritt
enb
yD
imit
riva
nH
eesc
hc ©
19
97
-20
06