Ansicht umschalten
Avatar von Lars Rohwedder
  • Lars Rohwedder

mehr als 1000 Beiträge seit 19.05.2000

C++ is komplex, ja. Bestreitet niemand. Und? Worauf willst du hinaus?

KlaKlucke schrieb am 27.05.2022 12:23:

C++20 ist eine seltsame Sprache. Da passiert im Hintergrund mehr, als man als Einsteiger erahnt:

void foo(int&& a) { //Some magical code... }

Man sollte schon wissen, was "Rvalue-Referenzen" in C++ sind. Diese wurden übrigens vor >10 Jahren in C++ eingeführt, sind also für Leute, die sich mit C++ auskennen, nichts neues.

Und sie wurden nicht aus Jux und Dallerei eingeführt, sondern weil sie eine Aufgabe haben, bzw. man mit Rvalue-Referenzen effizienteren Code schreiben kann als ohne sie.

int main() { int b; foo(b); //Error. An rValue reference cannot be pointed to a lValue. foo(5); //Compiles with no error. foo(b+3); //Compiles with no error. int&& c = b; //Error. An rValue reference cannot be pointed to a lValue. int&& d = 5; //Compiles with no error. }

Und dann kommen da noch die kilometerlangen Errormeldungen dazu, die jedem Einsteiger endgültig den Rest geben.

Wie gesagt, wenn man nicht weiß, was Rvalue-Referenzen sind, kommt man in C++ nicht weit. Hat man aber im C++-Einsteigerkurs aufgepasst, sind obige Codeschnipsel kein Problem und man versteht, welcher Code compiliert und welcher nicht und auch warum.

Jacob Sorber hat dazu jüngst ein neues Video gemacht:
[…]

Sorry, aber ich schaue ungern Leuten beim Reden zu. Nenn mich altmodisch, aber ich bevorzuge Text, den ich in meinem eigenen Tempo lesen kann, wo ich Abschnitte überfliegen oder erneut lesen kann und wo ich Codeschnipsel auch einfach markieren und rauskopieren kann und wo man auch Teile zitieren kann.

Lars R.

Bewerten
- +
Ansicht umschalten