Subject: Re: [boost] [Review:Contract] Some questions
From: Lorenzo Caminiti (lorcaminiti_at_[hidden])
Date: 2012-09-01 14:15:18
On Sep 1, 2012 9:56 AM, "Vicente J. Botet Escriba" <vicente.botet_at_[hidden]>
> Le 27/08/12 23:15, Vicente J. Botet Escriba a écrit :
>> = doxygen =
>> BTW, have you tried to generate contract documentation using doxygen?
Doxygen's preprocessor is too simple and it cannot correctly expand the
macros. To generate Doxygen docs of code that contains the contract macros,
you'd have to expand it before running Doxygen using you compiler -E or
something like Wave so to feed Doxygen the code with the macros already
expanded. You'd have to expand with all contracts disabled so Doxygen will
see your normal code and generates docs for it.
A different question (I'm not sure which one you intended to ask) is if my
lib macros can automatically generate Doxygen's @pre, @post, and @inv tags
(they are named something like that). An older rev used to do that--see
release 0.3.469 in the Release Notes section (idea taken from [Tadin04],
see Bibliography section and Features at bottom of Contract Programming
Overview section). However, the Doxygen docs simply repeated the assertion
code in the docs so it was more or less like looking at the contract code
from the declarations (without the function definition code). Such
automatically generated docs where of little value then the macros got too
complex for the Doxygen pp anyway so this feature was abandoned.
>> = enable-if =
>> Have you an example of the use of enable_if and contracts in the
This should work as usual but I just realized I don't have an example for
it. I'll test it and add an enable_if example.
> Hi Lorenzo,
> could you comment these two points?
My apologies I forgot to reply on these tow points. All, it's my honest
intention to satisfactorly reply to all comments you make (otherwise, why
would I ask a review?) If I forget to reply to an item or my reply is not
satisfactory, please poit that out to me as Vicente just did. Thanks!
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk