Auswertereihenfolge bei Funktionsaufruf
Von: Hubert Schmid (417ubojyp3w3un1l@expire.z42.de) [Profil]
Datum: 19.06.2008 09:43
Message-ID: <85ej6tamzu.fsf@sid.ue.schlund.de>
Newsgroup: de.comp.lang.iso-c++
Datum: 19.06.2008 09:43
Message-ID: <85ej6tamzu.fsf@sid.ue.schlund.de>
Newsgroup: de.comp.lang.iso-c++
Hallo,
ich habe eine sehr spezielle Frage zur Auswertereihenfolge beim
Funktionsaufruf. Ich dachte, ich hätte die Frage schon einmal in
dieser Newsgroup gestellt, konnte aber nichts dazu finden. Es gebt um
folgendes Konstrukt:
postfix-expression ( [ expression-list ] )
Laut 5.2.2(8) ist die Auswertereihenfolge der postfix-expression und
der (argument-)expression-list unspezifiziert. Ich kann allerdings
nichts dazu finden, wann die Initialisierung der Funktionsparameter
erfolgt. Ich vermute, dass diese in der Auswertung der Argumente
implizit dabei ist, bin mir aber nicht sicher. Ich möchte wissen, ob
garantiert ist, dass die Parameter erst nach Auswertung der
postfix-expression initialisiert werden.
Das konkrete Beispiel zu dieser Frage sieht so aus:
struct foo
{
void run(std::auto_ptr<foo> self);
};
int main()
{
std::auto_ptr<foo> bar(new foo);
bar->run(bar);
}
Ist dieser Code korrekt, das heißt wird bar als postfix-expression
ausgewertet, bevor es als Parameter kopiert wird?
Gruß, Hubert
[ Auf dieses Posting antworten ]Antworten
- Andreas Hünnebeck (19.06.2008 14:20)
- Markus Schaaf (19.06.2008 14:47)
- Hubert Schmid (21.06.2008 11:47)
- Stefan Ram (19.06.2008 15:22)
- James (19.06.2008 17:17)
- Hubert Schmid (21.06.2008 11:53)
- James (22.06.2008 01:32)
- Stefan Ram (22.06.2008 02:32)
