Style Code
Aller à la navigation
Aller à la recherche
Guillaume D. (CGAL like)
<source lang=cpp> /**
- Nom des classes, type, et paramètres templates avec 1ère lettre majuscule
- (tout le reste 1ère lettre minuscule)
- des _ entre les mots
- variables membres commencent par m
- variables paramètres commencent par a
- constantes en majuscules
- indentation : { et } sur la même colonne que le dessus et à
- l'intérieur décalage (type ANSI)
- /
template <Type> class Object_toto { public:
Object_toto(const Object_toto& atoto) { ... code indenté ... }
int is_valid() {}
private:
Type mdata;
static const int MA_CONSTANTE;
}
</source>
Seb F.
<source lang=cpp> /** -*- mode: c++ ; c-basic-offset: 3 -*-
* @file ByteInput.h * @author S. * @date Nov 2007 * * @brief Comme son nom l'indique * * @copyright // Informations sur la licence, etc. * * Puis détails. * * Conventions : * * - ClasseToto = ClasseToto.h + ClasseToto.cpp * (Ni plus, ni moins, sauf bien entendu si le .cpp est inutile). * - Le nom du fichier est exactement le nom de la classe. * - Identifiants : convention "CamelCase" * - Tous les identifiants de types utilisateurs commencent par des majuscules. * - Les constantes (pré-processeurs ou non) et valeurs de types énumérés sont * en majuscules. Mots séparés par "_". * - Un "#endif" indique par un commentaire la condition concernée. * - MAIS : "Avoid using the preprocessor whenever possible. [Stroustrup]" * (Perso, j'adhère.) * - Commentaire à la Javadoc (compatible avec Doxygen) * - Les données membres commencent par un underscore. * int _depth; * - Encapsulation (systématique). * - Un accesseur en lecture a le même nom que la donnée au "_" près. * Pas de getDepth() mais depth(); * - Une accesseur en écriture aussi. (Pas de "set"qqchose) * Pas de setDepth(int ) mais depth(int ); * - Les méthodes inline ne sont pas définies dans le corps de la * définition de classe mais en fin de .h (pas de code au sein * de la définition de classe). * - Indentation : variante K&R, cf. indentExample() * - Dans la mesure du possible, respecter 80 colonnes max. * (Indenter en fonction.) * - Ecriture "aérée" : espaces entre les opérateurs et les opérandes, à * l'intérieur des parenthèses, etc. * (Plutôt Java que C++, donc sans doute à ne pas adopter.) */
- ifndef _BYTEINPUT_H_
- define _BYTEINPUT_H_
- include "ByteInputFD.h"
- if defined(_IS_UNIX_) && defined(_HAS_GZIP_)
template< typename Type > class ByteInputGZip : public ByteInputFD {
public: /** * @param input Tous les paramêtres sont commentés. * * @return Ligne */ ByteInputGZip( ByteInput & input );
/** * Le commentaire décrit au présent de l'indicatif ce que fait la fonction * ou méthode. * * @param buff Tous les paramêtres sont commentés. * @param n Tous les paramêtres sont commentés. * * @return ... */ bool read( char *buff, size_t n );
inline void indentExample( int & a );
~ByteInputGZip();
inline ByteInput & in();
private:
ByteInputGZip( const ByteInputGZip & other );
protected:
ByteInput & _in; int _pidReader; /**< PID of the Stream input reader */ int _pidGZip; /**< PID of the GZip process */
};
/*
* Definitions of inline methods */
ByteInput & in() {
return _in;
}
/*
* */
void indentExample( int & a ) {
int i; for ( int i = 0; i < 100; ++i ) { if ( i % 2 ) {
std::cout << i << " est un nombre congru à 1 modulo 2 ";
} else {
std::cout << i << " est un nombre pair inférieur à 100 ";
} }
}
- endif // defined(_IS_UNIX_) && defined(_HAS_GZIP_)
- endif // _BYTEINPUT_H_
</source>