Object Outline adapts to your comment’s format, location, and style. It extracts documentation for structs, classes, member functions, functions, function arguments, and enumerated types. The comments are filtered and formatted into sections of fixed space font and normal text. Object Outline preserves sections of the comment where the formatting is important (example code, pointer diagrams, etc.). When Object Outline determines that a section of code is not formatted, then it forces the comments into a normal word wrapped paragraph. The user also has control through a comment filter, how the comment is formatted in the final documentation. The resulting documentation is attractive, easy to read, and does not look like a code listing.
The following is a simplified list of extraction rules:
* Any comment directly before a class or struct declaration. Ex:
// class foo does this and that
class foo {…};
* Any comment directly before the opening brace of a class or struct declaration. Ex:
class foo // class foo does this and that
{…};
* Any comment directly before or after a (member) function declaration. Ex:
class c1
{
// this member function does this and that
void foo();
};
* Any comment before, next, or after and indented, a member variable declaration. Ex:
class c1
{
// this member data does
int count; // that and
// everything else.
};
* Any comment directly before a (member) function implementation. Ex:
// this member function does so and so
void c1::foo()
{
}
* Any comment after a function parameter. Ex:
void funtioэ( int a, // this is the comment for a
int b, // this is the comment for b
int c) // this is the comment for c
{
}
* Any comment after a function declaration but before the opening brace. Ex:
void functioэ(int x,int y)
/*
comment block goes here
*/
{
}
* Any comment before an enum, and after each enum symbol. Ex:
/* this is enum X */
enum X
{
A, // A does this
B // B does that
};
* Any comment before of after a function prototype. Ex:
/* comment block before */
void functioю();
/* comment block after*/
Basically, Object Outline looks for comments in same places that you would write them or look for them. With this system no comment tags are required.