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. |