COIN-OR::LEMON - Graph Library

source: lemon/doc/coding_style.dox

Last change on this file was 1270:dceba191c00d, checked in by Alpar Juttner <alpar@…>, 6 years ago

Apply unify-sources.sh to the source tree

File size: 3.0 KB
Line 
1/* -*- mode: C++; indent-tabs-mode: nil; -*-
2 *
3 * This file is a part of LEMON, a generic C++ optimization library.
4 *
5 * Copyright (C) 2003-2013
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
25In order to make development easier we have made some conventions
26according to coding style. These include names of types, classes,
27functions, variables, constants and exceptions. If these conventions
28are met in one's code then it is easier to read and maintain
29it. Please comply with these conventions if you want to contribute
30developing LEMON library.
31
32\note When the coding style requires the capitalization of an abbreviation,
33only the first letter should be upper case.
34
35\code
36XmlReader
37\endcode
38
39
40\warning In some cases we diverge from these rules.
41This is primary done because STL uses different naming convention and
42in certain cases
43it is beneficial to provide STL compatible interface.
44
45\subsection cs-files File Names
46
47The header file names should look like the following.
48
49\code
50header_file.h
51\endcode
52
53Note that all standard LEMON headers are located in the \c lemon subdirectory,
54so you should include them from C++ source like this:
55
56\code
57#include <lemon/header_file.h>
58\endcode
59
60The source code files use the same style and they have '.cc' extension.
61
62\code
63source_code.cc
64\endcode
65
66\subsection cs-class Classes and other types
67
68The name of a class or any type should look like the following.
69
70\code
71AllWordsCapitalizedWithoutUnderscores
72\endcode
73
74\subsection cs-func Methods and other functions
75
76The name of a function should look like the following.
77
78\code
79firstWordLowerCaseRestCapitalizedWithoutUnderscores
80\endcode
81
82\subsection cs-funcs Constants, Macros
83
84The names of constants and macros should look like the following.
85
86\code
87ALL_UPPER_CASE_WITH_UNDERSCORES
88\endcode
89
90\subsection cs-loc-var Class and instance member variables, auto variables
91
92The names of class and instance member variables and auto variables
93(=variables used locally in methods) should look like the following.
94
95\code
96all_lower_case_with_underscores
97\endcode
98
99\subsection pri-loc-var Private member variables
100
101Private member variables should start with underscore.
102
103\code
104_start_with_underscore
105\endcode
106
107\subsection cs-excep Exceptions
108
109When writing exceptions please comply the following naming conventions.
110
111\code
112ClassNameEndsWithException
113\endcode
114
115or
116
117\code
118ClassNameEndsWithError
119\endcode
120
121\section header-template Template Header File
122
123Each LEMON header file should look like this:
124
125\include template.h
126
127*/
Note: See TracBrowser for help on using the repository browser.