When working with udoc, you'll get a fair number of error messages. Each error is tied to a file and line number where udoc thinks the error can probably be corrected, and the error wording is (hopefully) helpful.
The errors are sorted by file modification time, most recent first. The theory is that the file you're working on is the file where you want the error messages first.
Below is an overview of most of udoc's error messages. The most common errors are first.
Undocumented argument results when you've used an argument in a function, but not mentioned its name using \a. For a function such as this
void Mumble::setFumble( int a, bool b )
both '\a a' and '\a b' must occur at least once in the documentation.
You must mention the arguments by name, not by type.
No such argument results when you've used '\a' but there is no corresponding argument. This usually happens when one of your colleagues has changed the implementation without updating the documentation, so it's worth checking that the code and documentation match.
No link target for name() (in class name) appears when udoc thinks a word should be a link, but cannot find out what the word links to. The normal fix is to qualify the word with a class name (e.g. make 'log()' into 'Whatever::log()').
Sometimes that makes for inelegant prose. I envy you if the elegance of your prose is your biggest problem.
Class name has no member functions often happens when udoc cannot find the class declaration in the header file.
Undocumented function means udoc knows about the existence of a function, but there was no documentation for it. Normally udoc learns about functions by parsing class declarations.
Undocumented class means udoc knows about the existence of a class, but there was no documentation for it. Normally udoc learns about classes by parsing header files, or by seeing documentation for a member function.
Class name inherits undocumented class name happens if a subclass is documented, but its superclass is not. Document the superclass too, and all will be well.
File contains no documentation means that a file name was on udoc's command line, but there wasn't any documentation in it. There are two common reasons: Either you forgot to document the classes in that file, or there really shouldn't be any documentation in it. In the first case, write the necessary '\class' documentation blocks. In the second, make a documentation block saying '/*! \nodoc */'.
Unable to parse function name is the present you get when you've given udoc a too-complex function name. udoc only understands a subset of C++, and it doesn't understand the preprocessor at all.
udoc directive name negates preceding directive usually means that you've accidentally typed '\a \a' or similar.
Cannot find header file name (for class name) means what it says. udoc assumes that header files are in the same directory as the source file.
\class must be followed by a class name means that udoc couldn't parse your class name.
Class name conflicts with name at file:line indicates that the same class name occurs twice in the code. This is bad news, because it'll confuse the linker as well as udoc. (udoc reports this error twice, once for each file.)
Comment contains no documentation means you're lazy and don't fill in your automatically generated documentation blocks. The author of udoc has the same problem.
Last modified: 2010-05-03