Suchergebnisse für Anfrage "object-lifetime"
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 ...
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 ...
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 ...
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, ...
Ü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 ...
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, ...
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 = ...
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 ...
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 ...
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 ...