|
1 /* -*- C++ -*- |
|
2 * |
|
3 * This file is a part of LEMON, a generic C++ optimization library |
|
4 * |
|
5 * Copyright (C) 2003-2008 |
|
6 * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport |
|
7 * (Egervary Research Group on Combinatorial Optimization, EGRES). |
|
8 * |
|
9 * Permission to use, modify and distribute this software is granted |
|
10 * provided that this copyright notice appears in all copies. For |
|
11 * precise terms see the accompanying LICENSE file. |
|
12 * |
|
13 * This software is provided "AS IS" with no warranty of any kind, |
|
14 * express or implied, and with no claim as to its suitability for any |
|
15 * purpose. |
|
16 * |
|
17 */ |
|
18 |
|
19 /*! |
|
20 |
|
21 \page coding_style LEMON Coding Style |
|
22 |
|
23 \section naming_conv Naming Conventions |
|
24 |
|
25 In order to make development easier we have made some conventions |
|
26 according to coding style. These include names of types, classes, |
|
27 functions, variables, constants and exceptions. If these conventions |
|
28 are met in one's code then it is easier to read and maintain |
|
29 it. Please comply with these conventions if you want to contribute |
|
30 developing LEMON library. |
|
31 |
|
32 \note When the coding style requires the capitalization of an abbreviation, |
|
33 only the first letter should be upper case. |
|
34 |
|
35 \code |
|
36 XmlReader |
|
37 \endcode |
|
38 |
|
39 |
|
40 \warning In some cases we diverge from these rules. |
|
41 This primary done because STL uses different naming convention and |
|
42 in certain cases |
|
43 it is beneficial to provide STL compatible interface. |
|
44 |
|
45 \subsection cs-files File Names |
|
46 |
|
47 The header file names should look like the following. |
|
48 |
|
49 \code |
|
50 header_file.h |
|
51 \endcode |
|
52 |
|
53 Note that all standard LEMON headers are located in the \c lemon subdirectory, |
|
54 so you should include them from C++ source like this: |
|
55 |
|
56 \code |
|
57 #include <lemon/header_file.h> |
|
58 \endcode |
|
59 |
|
60 The source code files use the same style and they have '.cc' extension. |
|
61 |
|
62 \code |
|
63 source_code.cc |
|
64 \endcode |
|
65 |
|
66 \subsection cs-class Classes and other types |
|
67 |
|
68 The name of a class or any type should look like the following. |
|
69 |
|
70 \code |
|
71 AllWordsCapitalizedWithoutUnderscores |
|
72 \endcode |
|
73 |
|
74 \subsection cs-func Methods and other functions |
|
75 |
|
76 The name of a function should look like the following. |
|
77 |
|
78 \code |
|
79 firstWordLowerCaseRestCapitalizedWithoutUnderscores |
|
80 \endcode |
|
81 |
|
82 \subsection cs-funcs Constants, Macros |
|
83 |
|
84 The names of constants and macros should look like the following. |
|
85 |
|
86 \code |
|
87 ALL_UPPER_CASE_WITH_UNDERSCORES |
|
88 \endcode |
|
89 |
|
90 \subsection cs-loc-var Class and instance member variables, auto variables |
|
91 |
|
92 The names of class and instance member variables and auto variables (=variables used locally in methods) should look like the following. |
|
93 |
|
94 \code |
|
95 all_lower_case_with_underscores |
|
96 \endcode |
|
97 |
|
98 \subsection cs-excep Exceptions |
|
99 |
|
100 When writing exceptions please comply the following naming conventions. |
|
101 |
|
102 \code |
|
103 ClassNameEndsWithException |
|
104 \endcode |
|
105 |
|
106 or |
|
107 |
|
108 \code |
|
109 ClassNameEndsWithError |
|
110 \endcode |
|
111 |
|
112 \section header-template Template Header File |
|
113 |
|
114 Each LEMON header file should look like this: |
|
115 |
|
116 \include template.h |
|
117 |
|
118 */ |