Suchergebnisse für Anfrage "language-lawyer"

2 die antwort

Ist ein Semikolon nach NAME in `für NAME verboten?`?

Das Bash-Handbuch listet die Syntax für das @ aufor zusammengesetzte Anweisung als for name [ [ in [ word ... ] ] ; ] do list ; done was bedeutet, dass das Semikolon vordo ist optional, wenn dasin -Klausel wird weggelassen. [Anmerkung 2] In ...

4 die antwort

Existiert eine andere if-Anweisung?

Vor einiger Zeit, nachdem ich nicht mehr so gestanden habe: if (arg) invk(test); else if (test) { alot(); stuff(); } Ich habe beschlossen, dass es für die Lesbarkeit in unseren 1920x1200-Zeiten besser ist, das @ nicht auszulasse{}. So habe ich ...

8 die antwort

Sind nicht dereferenzierte Iteratoren nach dem Iterator "one past-the-end" eines Arrays undefiniertes Verhalten?

Gegebenint foo[] = {0, 1, 2, 3}; Ich möchte wissen, ob Iteratoren, die nach "one past-the-end" zeigen, ungültig sind. Zum Beispiel:auto bar = cend(foo) + 1; Es gibt eine Menge Beschwerden und Warnungen, dass dies "undefiniertes Verhalten" bei ...

TOP-Veröffentlichungen

6 die antwort

Rückgabetyp des bedingten Operators und zweiphasige Suche

Betrachten Sie das folgende Snippet: struct Base { }; struct Derived : Base { }; void f(Base &) { std::cout << "f(Base&)\n"; } template <class T = int> void g() { Derived d; f(T{} ? d : d); // 1 } void f(Derived &) { std::cout << ...

6 die antwort

Was ist die Beziehung zwischen den C- und C ++ - Standards?

Ich habe geschriebendiese Antwort [https://stackoverflow.com/questions/5539249/why-transforms-begin-s-end-s-begin-tolower-cant-be-complied-successfu/37438120#37438120] und ich zitierte ...

4 die antwort

Wann ist ein privater Konstruktor kein privater Konstruktor?

Nehmen wir an, ich habe einen Typ und möchte seinen Standardkonstruktor als privat kennzeichnen. Ich schreibe folgendes: class C { C() = default; }; int main() { C c; // error: C::C() is private within this context (g++) // error: calling a ...

2 die antwort

Spezialisiert auf nicht typisierte Template-Parameter des falschen Typs

Folgendes berücksichtigen template <unsigned > struct uint_ { }; template <class > struct X { static constexpr bool value = false; }; template <int I> // NB: int, not unsigned struct X<uint_<I>> { static constexpr bool value = true; }; int ...

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 ...

16 die antwort

Warum ruft die Linksschaltungsoperation Undefiniertes Verhalten auf, wenn der linke Operand einen negativen Wert hat?

In C ruft die bitweise Linksverschiebung ein undefiniertes Verhalten auf, wenn der linke Operand einen negativen Wert hat. Relevantes Zitat aus ISO C99 (6.5.7 / 4) Das Ergebnis von E1 << E2 ist E1 linksverschobene E2-Bitpositionen; leere ...

2 die antwort

Ist es für die Implementierung einer Standardbibliothek zulässig, dass die Klassendefinition vom C ++ - Standard abweicht?

Der folgende Code wurde erfolgreich mit clang und MSVC kompiliert, kann jedoch in GCC 6.1.0 nicht kompiliert werden. #include <memory> template<typename R, typename T, typename... Args> T* test(R(T::*)(Args...) const) { return nullptr; } int ...