language-lawyer

Für Fragen zu den Feinheiten formeller oder autoritativer Spezifikationen von Programmiersprachen und Umgebungen.
2
Antworten

Implizite Destruktorausführung in Funktionsaufruf

Ich frage mich, was der Standard über den folgenden Code sagt. Kann string Destruktor des temporären Objekts vor dem Aufruf von printPointer ausgeführt werden? ps. Der VS2010-Compiler beklagt sich nicht über diesen Code und funktioniert...
13.07.2016, 07:41
1
Antwort

Können # bedingte Bereiche Dateigrenzen überschreiten?

Im MSDN ( Ссылка ) sehe ich Folgendes:    Alle Anweisungen zur bedingten Kompilierung, z. B. #if und #ifdef, müssen   mit dem Schließen von #endif-Anweisungen vor dem Ende der Datei übereinstimmen;   Andernfalls wird eine Fehlermeldung generi...
28.02.2016, 22:29
2
Antworten

Ist es sicher, in eine Klasse zu konvertieren, die dasselbe Datenelementlayout, aber eine andere Implementierung aufweist?

Die erste Klasse wird für die private Vererbung verwendet, um das exakt gleiche Layout zu gewährleisten. Dies sollte Casting sicher machen. %Vor% In diesem trivialen Beispiel drucke ich zuerst das Datenelement int , gefolgt vom Element st...
08.09.2016, 02:31
3
Antworten

Ist das Floating-Point-Round-Trip-Verhalten immer definiert, wenn der Gleitkommabereich größer ist?

Nehmen wir an, ich habe zwei arithmetische Typen, eine Ganzzahl, I , und eine Gleitkommazahl, F . Ich nehme auch an, dass std::numeric_limits<I>::max() kleiner ist als std::numeric_limits<F>::max() . Nehmen wir an, ich ha...
29.04.2015, 00:33
2
Antworten

Normkonforme Methode, Float mit Integral zu vergleichen?

Nehmen wir an, ich habe zwei Objekte i und f der jeweiligen Typen I und F . Ich weiß, dass std::is_integral<I>::value wahr ist und std::is_floating_point<F>::value wahr ist. Gibt es einen vollständig standardkonf...
27.04.2015, 02:44
1
Antwort

POD-Strukturen, die das konstante Element enthalten

Mit diesem Code: %Vor% g ++ Version 4.8.3 beschwert sich über einen Fehler: %Vor% aber clang 3.5.0 kompiliert diesen Code ohne Fehler. Welches ist korrekt? Ist das ein Compilerfehler? Mein Versuch, dies zu lösen: Aus dem C ++ 03...
27.12.2014, 08:16
1
Antwort

Leere Packungen von Enums - machen sie zwei verschiedene Funktionen?

Es gibt eine Technik, die ich manchmal beim Überschreiben von template -Funktionen verwende, die folgendermaßen aussieht: %Vor% Dies unterscheidet do_stuff von do_stuff , weil einer 0 oder mehr UniqueEnum<1> s und der andere...
14.06.2013, 19:41
3
Antworten

Anforderungen an Standard-Bibliothekszuordnungstypen

Ich versuche eine Quadtree-Sparse-Matrix-Klasse zu schreiben. Kurz gesagt, ein quadtree_matrix<T> ist entweder die Nullmatrix oder ein vierfaches (ne, nw, se, sw) von quadtree_matrix<T> . Ich möchte schließlich verschieden...
25.03.2011, 15:41
1
Antwort

Was ist die Bedeutung der speziellen Sprache im Standard für lvalue-to-rvalue Konvertierungen für vorzeichenlose Zeichenarten mit unbestimmtem Wert

Im C ++ 14-Standard (n3797) lautet der Abschnitt für lvalue to rvalue-Konvertierungen wie folgt (Hervorhebung von mir):    4.1 Lvalue-to-rvalue-Konvertierung [conv.lval]       Ein glvalue (3.10) eines Nicht-Funktions-Array-Typs T kann i...
06.09.2017, 01:10
1
Antwort

Kann 'std :: basic_string :: operator []' eine "entfernte" geschützte Seite ohne Terminator zurückgeben?

Also sagt operator[] nicht direkt, dass s[s.size()] das Zeichen nach s[s.size()-1] im Speicher sein muss. Es scheint so zu sein, dass dies vermieden wird. Aber s.data() gibt an, dass s.data()+k == &s[k] und s.data() eine...
08.12.2015, 18:44