« Style Code » : différence entre les versions
Aller à la navigation
Aller à la recherche
Aucun résumé des modifications |
Aucun résumé des modifications |
||
Ligne 24 : | Ligne 24 : | ||
... |
... |
||
} |
} |
||
int is_valid() |
int is_valid() |
||
Ligne 35 : | Ligne 36 : | ||
</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> |
</source> |
Version du 6 novembre 2009 à 08:32
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>