Suchergebnisse für Anfrage "object-lifetime"

8 die antwort

memcpy / memmove an ein Gewerkschaftsmitglied, setzt dies das 'aktive' Mitglied?

Wichtige Klarstellung: Einige Kommentatoren scheinen zu glauben, dass ich aus einer Gewerkschaft kopiere. Schau dir das @ genau memcpy, kopiert es von der Adresse eines einfachen altenuint32_t, das nicht in einer Union enthalten ist. Außerdem ...

12 die antwort

Umgeht man den Konstruktor einer Klasse legal oder führt dies zu undefiniertem Verhalten?

Consider folgenden Beispielcode: class C { public: int* x; }; void f() { C* c = static_cast<C*>(malloc(sizeof(C))); c->x = nullptr; // <-- here } Wenn ich aus irgendeinem Grund mit dem nicht initialisierten Speicher leben müsste (natürlich, wenn ...

2 die antwort

ie ist die Reihenfolge der Zerstörung von Funktionsparameter

Dies ist eine Fortsetzung meiner vorherigen FrageWie ist die Reihenfolge der Zerstörung von Funktionsargumenten? [https://stackoverflow.com/q/36992039/3919155] weil ich versehentlich Argumente mit Parametern verwechselt habe. Vielen Dank an ...

TOP-Veröffentlichungen

6 die antwort

Warum funktioniert der Aufruf von std :: string.c_str () für eine Funktion, die einen String zurückgibt, nicht?

Ich habe den folgenden Code: std::string getString() { std::string str("hello"); return str; } int main() { const char* cStr = getString().c_str(); std::cout << cStr << std::endl; // this prints garbage }Was ich dachte würde passieren ist, ...

6 die antwort

Über das Binden einer const-Referenz auf ein Unterobjekt eines temporären

Mit Code wie #include <iostream> struct P { int x; P(int x) : x(x) {} ~P() { std::cout << "~P()\n"; } }; int main() { auto const& x = P{10}.x; std::cout << "extract\n"; } GCC druckt~P() extract zeigt an, dass die Lebensdauer des Temporärs durch ...

18 die antwort

Warum wäre das Verhalten von std :: memcpy für Objekte, die nicht TriviallyCopyable sind, undefiniert?

Vonhttp: //en.cppreference.com/w/cpp/string/byte/memcp [http://en.cppreference.com/w/cpp/string/byte/memcpy]: Wenn die Objekte nicht @ si TriviallyCopyable [http://en.cppreference.com/w/cpp/concept/TriviallyCopyable] (z. B. Skalare, Arrays, ...

1 die antwort

Warum lebt die Variable nicht lange genug?

Betrachten Sie diese Funktion, die die Dateierweiterung einer bestimmten Datei zurückgeben sollPath. pub fn get_extension<'a>(path: &'a Path) -> Option<&'a str> { let path_str = path.as_str().unwrap(); let ext_pos = ...

1 die antwort

Verlängert die Lebensdauer des Provisoriums und arbeitet mit blockbasierten Aggregaten, jedoch nicht mit "Neu". Warum?

Hinweis: Diese Frage wurde ursprünglich gestellt alsein Kommentar [https://stackoverflow.com/questions/23892018/extending-temporarys-lifetime-through-rvalue-data-member-works-with-aggregate/23965233#comment36922467_23965233] durchRyan Haining ...

1 die antwort

Das Verlängern der temporären Lebensdauer durch rvalue data-member funktioniert mit aggregate, aber nicht mit constructor. Warum?

Ich habe das folgende Schema gefunden, um eine temporäre Lebensdauer zu verlängern, ich weiß nicht, ob es sollte, aber es funktioniert. struct S { std::vector<int>&& vec; }; int main() { S s1{std::vector<int>(5)}; // construct with temporary ...

3 die antwort

C ++ Verwenden eines Verweises auf die zu definierende Variable

Ist der folgende Code gemäß dem Standard (mit Abzinsung der ... s) in C ++ gültig? bool f(T& r) { if(...) { r = ...; return true; } return false; } T x = (f(x) ? x : T());Es ist bekannt, in den von diesem Projekt verwendeten GCC-Versionen ...