Hallo,
bisher dachte ich immer, es sei nicht schwierig die Syntax einer Programmiersprache zu erlernen, nur die Semantik sei manchmal kompliziert…
Jetzt habe ich folgende Problem: ich schreibe eine Klasse DreierVektor (ja, ich weiss, sowas gibts als fertige Bibliothek, ich schreibe das aus akademischem Interesse), und zwar als template, also
template class DreierVektor {…};
Das funktioniert ganz gut, nur muss ich beim Skalarprodukt das erste Argument komplex konjugieren, falls das Template complex ist. Allerding ist ja complex auch wieder ein Template, und hier beginnen meine Probleme:
ich habe versucht, in der Funktion
template
S DreierVektor::operator\*(DreierVektor other)
ein dynamic_cast auf complex zu machen, falls tatsächlich ein complexer Typ gegeben ist. Doch ich versage bei der Syntax dafür. Wer kann mir helfen?
Meine bisherigen Versuche sahen etwa so aus:
template \>
S DreierVektor::operator\*(DreierVektor other){
complex c = dynamic\_cast \> x();
// x() liefert einen Wert vom Typ S zurück
...
}
Dabei gibt es dann einen Fehler:
error: `a’ was not declared in this scope
bezogen auf die erste zitierte Zeile. (gcc version 3.3.5 (Debian 1:3.3.5-13).
Vielen Dank im Voraus,
Moritz