Reference Manual - inf.ufpr.br · Manual for version 1.5.6 Written by Dimitri van Heesch c...

30
Manual for version 1.5.6 Written by Dimitri van Heesch c 1997-2007 50 How to report a bug Bugs are tracked in GNOME’s bugzilla database. Before submitting a new bug, first search through the database if the same bug has already been submitted by others (the doxygen product will be preselected). If you believe you have found a new bug, please report it. If you are unsure whether or not something is a bug, please ask help on the users mailing list first (subscription is required). If you send only a (vague) description of a bug, you are usually not very helpful and it will cost me much more time to figure out what you mean. In the worst-case your bug report may even be completely ignored by me, so always try to include the following information in your bug report: The version of doxygen you are using (for instance 1.5.3, use doxygen --version if you are not sure). The name and version number of your operating system (for instance SuSE Linux 6.4) It is usually a good idea to send along the configuation file as well, but please use doxygen with the -s flag while generating it to keep it small (use doxygen -s -u [configName] to strip the comments from an existing config file). The easiest (and often the only) way for me to fix bugs is if you can attach a small example demon- strating the problem you have to the bug report, so I can reproduce it on my machine. Please make sure the example is valid source code (could potentially compile) and that the problem is really cap- tured by the example (I often get examples that do not trigger the actual bug!). If you intend to send more than one file please zip or tar the files together into a single file for easier processing. Note that when reporting a new bug you’ll get a chance to attach a file to it only after submitting the initial bug description. You can (and are encouraged to) add a patch for a bug. If you do so please use PATCH as a keyword in the bug entry form. If you have ideas how to fix existing bugs and limitations please discuss them on the developers mailing list (subscription required). Patches can also be sent directly to [email protected] if you prefer not to send them via the bug tracker or mailing list. For patches please use ”diff -uN” or include the files you modified. If you send more than one file please tar or zip everything, so I only have to save and download one file. Part II Reference Manual Features Requires very little overhead from the writer of the documentation. Plain text will do, but for more fancy or structured output HTML tags and/or some of doxygen’s special commands can be used. Supports C/C++, Java, (Corba and Microsoft) Java, Python, IDL, C#, Objective-C and to some extent D and PHP sources. Supports documentation of files, namespaces, packages, classes, structs, unions, templates, variables, functions, typedefs, enums and defines. User Manual for Doxygen 1.5.6, written by Dimitri van Heesch c 1997-2006

Transcript of Reference Manual - inf.ufpr.br · Manual for version 1.5.6 Written by Dimitri van Heesch c...

Page 1: Reference Manual - inf.ufpr.br · Manual for version 1.5.6 Written by Dimitri van Heesch c 1997-2007 50 How to report a bug Bugs are tracked in GNOME’s bugzilla database. Before

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

[email protected]

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

Page 2: Reference Manual - inf.ufpr.br · Manual for version 1.5.6 Written by Dimitri van Heesch c 1997-2007 50 How to report a bug Bugs are tracked in GNOME’s bugzilla database. Before

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

Page 3: Reference Manual - inf.ufpr.br · Manual for version 1.5.6 Written by Dimitri van Heesch c 1997-2007 50 How to report a bug Bugs are tracked in GNOME’s bugzilla database. Before

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

Page 4: Reference Manual - inf.ufpr.br · Manual for version 1.5.6 Written by Dimitri van Heesch c 1997-2007 50 How to report a bug Bugs are tracked in GNOME’s bugzilla database. Before

47

or

you

can

useinstalldox

tose

tth

eli

nks

asfo

llow

s:

[email protected]::

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

Page 5: Reference Manual - inf.ufpr.br · Manual for version 1.5.6 Written by Dimitri van Heesch c 1997-2007 50 How to report a bug Bugs are tracked in GNOME’s bugzilla database. Before

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

Page 6: Reference Manual - inf.ufpr.br · Manual for version 1.5.6 Written by Dimitri van Heesch c 1997-2007 50 How to report a bug Bugs are tracked in GNOME’s bugzilla database. Before

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

Page 7: Reference Manual - inf.ufpr.br · Manual for version 1.5.6 Written by Dimitri van Heesch c 1997-2007 50 How to report a bug Bugs are tracked in GNOME’s bugzilla database. Before

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

Page 8: Reference Manual - inf.ufpr.br · Manual for version 1.5.6 Written by Dimitri van Heesch c 1997-2007 50 How to report a bug Bugs are tracked in GNOME’s bugzilla database. Before

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

Page 9: Reference Manual - inf.ufpr.br · Manual for version 1.5.6 Written by Dimitri van Heesch c 1997-2007 50 How to report a bug Bugs are tracked in GNOME’s bugzilla database. Before

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

Page 10: Reference Manual - inf.ufpr.br · Manual for version 1.5.6 Written by Dimitri van Heesch c 1997-2007 50 How to report a bug Bugs are tracked in GNOME’s bugzilla database. Before

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

Page 11: Reference Manual - inf.ufpr.br · Manual for version 1.5.6 Written by Dimitri van Heesch c 1997-2007 50 How to report a bug Bugs are tracked in GNOME’s bugzilla database. Before

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

Page 12: Reference Manual - inf.ufpr.br · Manual for version 1.5.6 Written by Dimitri van Heesch c 1997-2007 50 How to report a bug Bugs are tracked in GNOME’s bugzilla database. Before

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

Page 13: Reference Manual - inf.ufpr.br · Manual for version 1.5.6 Written by Dimitri van Heesch c 1997-2007 50 How to report a bug Bugs are tracked in GNOME’s bugzilla database. Before

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

Page 14: Reference Manual - inf.ufpr.br · Manual for version 1.5.6 Written by Dimitri van Heesch c 1997-2007 50 How to report a bug Bugs are tracked in GNOME’s bugzilla database. Before

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

Page 15: Reference Manual - inf.ufpr.br · Manual for version 1.5.6 Written by Dimitri van Heesch c 1997-2007 50 How to report a bug Bugs are tracked in GNOME’s bugzilla database. Before

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

Page 16: Reference Manual - inf.ufpr.br · Manual for version 1.5.6 Written by Dimitri van Heesch c 1997-2007 50 How to report a bug Bugs are tracked in GNOME’s bugzilla database. Before

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

Page 17: Reference Manual - inf.ufpr.br · Manual for version 1.5.6 Written by Dimitri van Heesch c 1997-2007 50 How to report a bug Bugs are tracked in GNOME’s bugzilla database. Before

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

Page 18: Reference Manual - inf.ufpr.br · Manual for version 1.5.6 Written by Dimitri van Heesch c 1997-2007 50 How to report a bug Bugs are tracked in GNOME’s bugzilla database. Before

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

Page 19: Reference Manual - inf.ufpr.br · Manual for version 1.5.6 Written by Dimitri van Heesch c 1997-2007 50 How to report a bug Bugs are tracked in GNOME’s bugzilla database. Before

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

Page 20: Reference Manual - inf.ufpr.br · Manual for version 1.5.6 Written by Dimitri van Heesch c 1997-2007 50 How to report a bug Bugs are tracked in GNOME’s bugzilla database. Before

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

)

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

Page 21: Reference Manual - inf.ufpr.br · Manual for version 1.5.6 Written by Dimitri van Heesch c 1997-2007 50 How to report a bug Bugs are tracked in GNOME’s bugzilla database. Before

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

Page 22: Reference Manual - inf.ufpr.br · Manual for version 1.5.6 Written by Dimitri van Heesch c 1997-2007 50 How to report a bug Bugs are tracked in GNOME’s bugzilla database. Before

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

Page 23: Reference Manual - inf.ufpr.br · Manual for version 1.5.6 Written by Dimitri van Heesch c 1997-2007 50 How to report a bug Bugs are tracked in GNOME’s bugzilla database. Before

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

Page 24: Reference Manual - inf.ufpr.br · Manual for version 1.5.6 Written by Dimitri van Heesch c 1997-2007 50 How to report a bug Bugs are tracked in GNOME’s bugzilla database. Before

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

Page 25: Reference Manual - inf.ufpr.br · Manual for version 1.5.6 Written by Dimitri van Heesch c 1997-2007 50 How to report a bug Bugs are tracked in GNOME’s bugzilla database. Before

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

Page 26: Reference Manual - inf.ufpr.br · Manual for version 1.5.6 Written by Dimitri van Heesch c 1997-2007 50 How to report a bug Bugs are tracked in GNOME’s bugzilla database. Before

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

Page 27: Reference Manual - inf.ufpr.br · Manual for version 1.5.6 Written by Dimitri van Heesch c 1997-2007 50 How to report a bug Bugs are tracked in GNOME’s bugzilla database. Before

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

Page 28: Reference Manual - inf.ufpr.br · Manual for version 1.5.6 Written by Dimitri van Heesch c 1997-2007 50 How to report a bug Bugs are tracked in GNOME’s bugzilla database. Before

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

Page 29: Reference Manual - inf.ufpr.br · Manual for version 1.5.6 Written by Dimitri van Heesch c 1997-2007 50 How to report a bug Bugs are tracked in GNOME’s bugzilla database. Before

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

Page 30: Reference Manual - inf.ufpr.br · Manual for version 1.5.6 Written by Dimitri van Heesch c 1997-2007 50 How to report a bug Bugs are tracked in GNOME’s bugzilla database. Before

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