std::string self-assign mit c_str()?
-
Hi,
kurze Frage: Darf man das machen?
std::string s = "hih!"; s = s.c_str() + 1; // "ih!"Der operator=() könnte ja das array von c_str() deallokieren (und dann zu lesen versuchen), oder memcpy() (Speicher darf nicht überlappen) anstatt memmove() verwenden.
Danke.
-
Nein
-
Aber wo steht das (offiziell)

-
Das ist erlaubt. Siehe
<a href= schrieb:
[string.cons]/24">Returns: *this =
basic_string(s).Die Zuweisung wird natürlich i.d.R. anders implementiert, aber das Verhalten muss letztendlich das gleiche sein, und das Verhalten dieser Implementierung ist für dein Beispiel definiert.
-
Ah ok danke
