doc/coding_style.dox
author kpeter
Tue, 05 Feb 2008 11:24:32 +0000
changeset 2563 5841132a89fd
parent 2391 14a343be7a5a
permissions -rw-r--r--
Small fixes in README.
     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 */