AnsiString und string
-
in einer externen Klasse steht
void bb::func(string &text) { }Ich rufe in meiner Unit1.cpp das so auf
AnsiString Name = "huhu"; x->func(Name.c_str());Jetzt gibt er mir die Warnung:
[C++ Warnung] Unit1.cpp(134): W8030 Temporäre Größe für Parameter 'text' in Aufruf von 'bb::func(string &)' verwendet
Was soll dies bedeuten? Mach ich etwas falsch?
-
-
In diesem Fall
AnsiString Name = "huhu"; std::string temp(Name.c_str()); x->func(temp);
-
Referenzen auf const Werte sind hingegen erlaubt, daher geht auch:
void bb::func( [b]const[/b] string& strText ) { }
-
Wenn er das in der externen Klasse ändern kann, ist diese Lösung vorzuziehen.
-
Ooops, genaues Lesen ist doch wohl wichtig... vergiss meinen Post, Goldstein hat´s richtig gemacht.
-
Doppeltes Ooops... der Goldstein heisst ja garnicht Goldstein, sondern Braunstein.
Ich glaub, ich lass das mit dem Posten mal besser bis nach dem Mittag sein.
-
Ah Danke Goldstein, ähm Braunstein.

Also muss ich entweder vorher in eine string übergeben oder ich erlaube über const der Funktion auch diese Werte zu bearbeiten. Alles klar.