3 * This file is a part of LEMON, a generic C++ optimization library
5 * Copyright (C) 2003-2008
6 * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
7 * (Egervary Research Group on Combinatorial Optimization, EGRES).
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.
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
21 \page coding_style LEMON Coding Style
23 \section naming_conv Naming Conventions
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.
32 \note When the coding style requires the capitalization of an abbreviation,
33 only the first letter should be upper case.
40 \warning In some cases we diverge from these rules.
41 This primary done because STL uses different naming convention and
43 it is beneficial to provide STL compatible interface.
45 \subsection cs-files File Names
47 The header file names should look like the following.
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:
57 #include <lemon/header_file.h>
60 The source code files use the same style and they have '.cc' extension.
66 \subsection cs-class Classes and other types
68 The name of a class or any type should look like the following.
71 AllWordsCapitalizedWithoutUnderscores
74 \subsection cs-func Methods and other functions
76 The name of a function should look like the following.
79 firstWordLowerCaseRestCapitalizedWithoutUnderscores
82 \subsection cs-funcs Constants, Macros
84 The names of constants and macros should look like the following.
87 ALL_UPPER_CASE_WITH_UNDERSCORES
90 \subsection cs-loc-var Class and instance member variables, auto variables
92 The names of class and instance member variables and auto variables (=variables used locally in methods) should look like the following.
95 all_lower_case_with_underscores
98 \subsection cs-excep Exceptions
100 When writing exceptions please comply the following naming conventions.
103 ClassNameEndsWithException
109 ClassNameEndsWithError
112 \section header-template Template Header File
114 Each LEMON header file should look like this: