c_str() von temporärem Objekt aufrufen
-
std::string s = std::string("foobar").c_str();Jemand hat mal davon gemunkelt, dass das UB sei.
Also mit GCC und clang++ klappts.Ist die Zeile standardkonform?
-
Problem gelöst, danke.
-
Dir sollte klar sein/werden, dass man UB nicht durch einen Test ausschließen kann.
-
Jemand hat mal davon gemunkelt, dass das UB sei.
Es wäre UB, den zurückgegebenen String zu verwenden, nachdem die zugehörige Temporary zerstört wurde. Solange der String nur in dem die Temporary enthaltenden Ausdruck verwendet wird, ist alles fein.