Vorschläge für einen Codestandard ================================= - Benennung von Dateien: - Sourcen .cc - C++ Header .hh - Verzeichnisse: - lib/ include/ / doc/ grid/ quocmesh/ albertmesh/ ugmesh/ solver/ linsolver/ nonlinsolver/ timesolver/ fem/ finitevolume/ finiteelement/ discgalerkin/ localbase/ qudrature/ dofs/ - in include nur Header - in Modulen lokal genauso, wenn gewünscht - alle Klassen sind im Namespace Dune:: - Jedes Programm muss "config.h" einbinden, damit man globale Compilerunterschiede ausgleichen kann - Makefiles durch automake - auf die Dauer Verwendung von libtool um mit diversen Compilern und OS umgehen zu können - Tab = 4 Spaces - // $Id: standard.txt,v 1.1.1.1 2003/01/29 14:11:59 robertk Exp $ oben, danach Kurzbeschreibung - Methodennamen fangen mit Kleinbuchstaben an, danach Grossbuchstabe bei jedem neuen Wort - public-Daten sind böse - Namen von privaten Daten hören mit einem Unterstrich auf - bis jemandem eine Hierarchie für Exceptions einfällt werden alle eine ?DuneEx? - #define-Makros sind böse, konstante Werte sind const typ wert - globaler Debug-Code wird vom Symbol NDEBUG ausgeschaltet, damit er zusammen mit allen assert()s verschwindet?? Auf jeden Fall ein Symbol, dass mit ./configure --enable-debug schaltbar ist - Portierbarkeit: _immer_ sizeof verwenden, - sizeof(void*) != sizeof(int) !