Suchergebnisse für Anfrage "language-lawyer"

1 die antwort

Ist es möglich, einen in geschweiften Klammern eingeschlossenen Initialisierer als Makroparameter zu übergeben?

Ich habe eine Funktion, die ich so aufrufe: literal<long[2]>({1, 2});Ich möchte ein Makro schreiben, das zu dieser Anweisung erweitert wird, z. MYMACRO(long[2], {1, 2})Leider ist dem Präprozessor die Klammerübereinstimmung nicht bekannt, so ...

2 die antwort

Striktes C ++ - Aliasing, wenn kein Zeiger verwendet wird, der durch Platzierung neu zurückgegeben wurde

Kann dies möglicherweise undefiniertes Verhalten verursachen? uint8_t storage[4]; // We assume storage is properly aligned here. int32_t* intPtr = new((void*)storage) int32_t(4); // I know this is ok: int32_t value1 = *intPtr; *intPtr = 5; // ...

3 die antwort

Ist das Konvertieren zwischen Pointer-to-T, Array-of-T und Pointer-to-Array-of-T jemals undefiniert?

Betrachten Sie den folgenden Code. #include <stdio.h> int main() { typedef int T; T a[] = { 1, 2, 3, 4, 5, 6 }; T(*pa1)[6] = (T(*)[6])a; T(*pa2)[3][2] = (T(*)[3][2])a; T(*pa3)[1][2][3] = (T(*)[1][2][3])a; T *p = a; T *p1 = *pa1; //T *p2 = *pa2; ...

TOP-Veröffentlichungen

2 die antwort

Ist Visual Studio beim Drucken der Funktionsadresse fehlerhaft?

Nehmen Sie den folgenden Testfall: #include <iostream> void foo() {} int main() { std::cout << &foo << std::endl; } GCC 4.1.2, GCC 4.8 und GCC 4.9 (C ++ 03 und C ++ 11)Geben Sie die folgende Ausgabe ...

1 die antwort

Welcher Abschnitt des C ++ - Standards erfordert, dass set :: erase Destruktoren sofort aufruft

Welcher Abschnitt des C ++ 11-Standards (Hier ist eine Kopie eines Standardentwurfs [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3337.pdf]) erfordert assoziative Container wie std :: set, std :: map, std :: unordered_set und std :: ...

1 die antwort

Verbietet C ++ standardmäßig die Speicherung von Member-Funktionen in einzelnen Klasseninstanzen?

In C ++ - Implementierungen wird Code normalerweise nicht (in irgendeiner Form) in Klasseninstanzen gespeichert. Das Codesegment befindet sich nicht im gleichen Speicherbereich wie Objekte und dergleichen. Dies bedeutet, dass Mitgliedsfunktionen ...

1 die antwort

Was ist der Grund dafür, dass ein beitrittsfähiger std :: thread nicht automatisch beitritt?

Manchmal wäre es sinnvoll, wenn sich eine zusammenfügen läsststd::thread hatte die Fähigkeit, auszuführenthread::join() auf seinem Zerstörer. Siehe die folgenden Beispiele. Beispiel 1 (Fehler):Das Objektstd::thread wurde nach dem Wurf der ...

2 die antwort

Erfassen einer Referenz durch Referenz in einem C ++ 11-Lambda

Bedenken Sie: #include <functional> #include <iostream> std::function<void()> make_function(int& x) { return [&]{ std::cout << x << std::endl; }; } int main() { int i = 3; auto f = make_function(i); i = 5; f(); }Wird dieses Programm garantiert ...

3 die antwort

Muss ich wirklich einen vom Benutzer bereitgestellten Konstruktor für const-Objekte implementieren?

Ich habe den Code: class A { public: A() = default; private: int i = 1; }; int main() { const A a; return 0; }Es kompiliert gut auf g ++ (sieheideone [http://ideone.com/PryGs5]), schlägt aber auf clang ++ mit Fehler fehl: Die ...

2 die antwort

Können Sie den Wert eines Gewerkschaftsmitglieds einem anderen zuweisen?

Betrachten Sie das folgende Code-Snippet: union { int a; float b; }; a = /* ... */; b = a; // is this UB? b = b + something;Ist die Abtretung eines Gewerkschaftsmitglieds an ein anderes gültig?