K
Ich halte mich der Konsistenz wegen in C++ an die Namensgebung der Standardbibliothek: snake_case für alles. Was mir daran aber nicht gefällt ist, dass dann alles in demselben "Namensraum" ist und es ein bisschen schwieriger wird, Dinge auseinanderzuhalten.
Was Formatierung und Klammerung angeht, kommt es auf den Kontext an. In der Regel setze ich auf die öffnende geschweifte Klammer für Typ- und Funktionsdefinition in ihre eigene Zeile und sonst (z.B. bei einer for Schleife) eher nicht. Allerdings schreibe ich es auch kompakter, der ganze Kram in eine Zeile passt. Und wenn ein Ausdruck zu lang ist, dann richte ich den Text meist ein bisschen aus, damit beim Lesen schneller klar wird, welche Klammern zusammen gehören. Zum Beispiel so:
struct autodiff
{
double v;
double d;
autodiff(double v = 0.0, double d = 0.0)
: v(v), d(d)
{}
};
ad operator+(ad const& a, ad const& b)
{
return ad(a.v + b.v, a.d + b.d);
}
ad operator-(ad const& a, ad const& b)
{
return ad(a.v - b.v, a.d - b.d);
}
ad operator*(ad const& a, ad const& b)
{
return ad(a.v * b.v, a.v * b.d + b.v * a.d);
}
ad sin(ad const& x)
{
return ad(std::sin(x.v), std::cos(x.v) * x.d);
}
void foo()
{
for (int i = 0; i < 10; ++i) {
langer_funktions_aufruf(dies, das, und_noch_mehr,
und_noch_ein_parameter);
}
}