C plus plus version

From WikiManual
Revision as of 15:04, 30 October 2005 by Taldor (talk | contribs) (C++ coding standards)
Jump to: navigation, search

I propose we discuss the C++ design and coding standards in here. A wiki is much handier then a forum or PM's for it.

Original document by Taldor, comments by Numsgil in Red

C++ design

General concepts

  • Class based approach. In some cases, procedural in others. It's a value decision I'll make as I port the code.
  • Portable code. Where possible. Preferably in house or free library wrappers for non portable functions, such as multithreading and OS timers.

Structure

See the present VB code

  • Main
    • Engine
      • User Interface
      • Darwin (the simulation engine)
        • Veg
        • Tie
        • Robot
          • Sense

To be used everywhere:

  • Vector_4 (using uBLAS) Present vector class is from this article. I'll use whichever is fastest, feel free to perfrom benchamrks
  • Matrix_4 (also using uBLAS) See above
  • Random (using 'srand()' and 'rand()') See the chapter on random numbers
  • Object (the base class) Depends on the class

C++ coding standards

I would use:

  1. C++ C++ libraries where such libraries do what I want them to do, C libraries otherwise. Another value decision. All C librairies are included in C++. Mixing C and C++ isn't the easiest task, however OO C++ and procedural C++ can be mixed easily.
  2. Four spaced tabs - Aye.
  3. External librairies when possible (ie. Boost) Internal libraries where possible, to decrease the number of code dependancies, except where external libraries perform the job faster/more comoprehensively than internal libraries can.
  4. SDL Dunno, haven't looked into graphics libraries yet.
  5. ...

See also

  1. RoundTable
  2. C/C++ Reference
  3. C++ FAQ Lite