| 136 | | |
| 137 | | === Introductory Comment === |
| 138 | | Every file that contains source code must be documented with an introductory comment that provides information on the file name and its contents: |
| 139 | | {{{ |
| 140 | | /** |
| 141 | | @file |
| 142 | | @brief |
| 143 | | A brief description. |
| 144 | | |
| 145 | | More description... (new paragraph after @brief) |
| 146 | | */ |
| 147 | | }}} |
| 148 | | Note: try not to fill in the filename. It is obvious and the comment compiler (Doxygen) will do it automatically and you don't have to adjust it when renaming the file. |
| 149 | | |
| 150 | | === Classes === |
| 151 | | In the header file, just above the class declaration, explain what the class does and where it is used. You could even add an example if it helps understanding the class. |
| 152 | | {{{ |
| 153 | | /** |
| 154 | | @brief |
| 155 | | A brief description. |
| 156 | | More brief description. |
| 157 | | |
| 158 | | Details follow here. |
| 159 | | Maybe an example or something. |
| 160 | | */ |
| 161 | | class ClassName |
| 162 | | { |
| 163 | | ... |
| 164 | | }}} |
| 165 | | |
| 166 | | === Class Members === |
| 167 | | Add a brief description to every member of a class: |
| 168 | | {{{ |
| 169 | | private: |
| 170 | | int value_; //!< A brief description |
| 171 | | int longerValueName_; //!< A brief description |
| 172 | | }}} |
| 173 | | The < after //! indicates that the member is located in front of the comment instead of after the comment. |
| 174 | | |
| 175 | | If you need a more detailed description, use: |
| 176 | | {{{ |
| 177 | | private: |
| 178 | | int value_; //!< A detailed description |
| 179 | | //!< More detailed description |
| 180 | | //!< ... |
| 181 | | }}} |
| 182 | | or |
| 183 | | {{{ |
| 184 | | private: |
| 185 | | int value_; /**< |
| 186 | | A detailed description |
| 187 | | More detailed description |
| 188 | | ... |
| 189 | | */ |
| 190 | | }}} |
| 191 | | |
| 192 | | === Functions === |
| 193 | | Doxygen documentation (javadoc like for C++) is placed in the source file, just above the function header. If the function is inline, place the comment there but keep it short. [[br]] |
| 194 | | When writing documentation in the source file don't make it all jam-packed to enhance readability. Here is an example to demonstrate formatting: |
| 195 | | {{{ |
| 196 | | /** |
| 197 | | @brief |
| 198 | | A brief description. |
| 199 | | More brief description. |
| 200 | | |
| 201 | | Details follow here. |
| 202 | | Maybe an example or something. |
| 203 | | @param param1 |
| 204 | | Parameter description for parameter named 'param1' |
| 205 | | @param param2 |
| 206 | | Parameter description for parameter named 'param2' |
| 207 | | @return |
| 208 | | Describe what the function returns |
| 209 | | @note |
| 210 | | Something important to remember. |
| 211 | | @author |
| 212 | | The mighty whoever |
| 213 | | */ |
| 214 | | returntype functionname(type1 param1, type2 param2) |
| 215 | | { |
| 216 | | ... |
| 217 | | }}} |
| 218 | | |
| 219 | | === Inline Functions === |
| 220 | | Inline functions need documentation as well, but we don't want a messy headerfile. Keep the comments short and put all doxygen code on one line: |
| 221 | | {{{ |
| 222 | | /** @brief A brief description. @param param1 description [...] @return description */ |
| 223 | | inline returntype functionname(type1 param1 [, ...]) { ... } |
| 224 | | }}} |
| | 136 | Comment your code and add [wiki:Doxygen] Comments to all files, classes, structs, functions and member variables.[[br]] |
| | 137 | Read [wiki:Doxygen this] to learn more about Doxygen. |