Maintainer C++ Formatting Suggestions ************************************* Some consistency and readability to C++ source code in the MP4v2 project is desired. Every coder has different styles, uses different tools, but we need to find some common ground when possible. So please consider this document when creating and editing code. When in doubt, general suggestions are as follows: - format for good readability. - format in a similar fashion as the file you are editing. - format code generally no wider than 119 columns. - format code with 4-space indents (no hard-tabs!) - the wider an identifier's scope is, the more descriptive it's name should be (and generally longer). Short identifiers for local scopes and loops are perfectly acceptable. - make liberal use of TODO comments as necessary. Following the pattern of marking *who* placed the TODO with a hyphen followed by your initials or shortname. ie: TODO-XY; note this does not imply the person who marked takes responsibility for the task. - move pointer 'astericks' and reference 'ampersands' towards type EXAMPLE IF/ELSE --------------- if( true ) doit(); if( (a == 1) && (b == 2) ) { doit(); doit(); } else if( true && /* really long multi-line stuff another long line another line */ ) { doit(); } EXAMPLE FUNCTION DELCARATIONS ----------------------------- void processFoo( ); bool processFoo( const char* name = 0 ); bool processFoo( const string& name ); EXAMPLE FUNCTION DEFINITIONS ----------------------------- void processFoo() { doit(); } bool processFoo( const char* name = 0 ) { doit(); return thing != true; // no need for parenthesis } bool processFoo( const string& name ) { doit(); return (thing != true) || (another == false); // parens help readability } EXAMPLE CLASS DECL ------------------ class Foo { public: Foo( int value ); virtual ~Foo(); int get( ); void set( int value ); protected: virtual void doit() = 0; private: int _value; public: const int defaultValue; public: static void foo(); };