Fehler, Irrtümer, Fragen - Seite 2418

 
Slava:

DieÜbergabe eines Parameters per Referenz impliziert, dass eine Variable im Speicher zugewiesen ist.

Konstanten hingegen werden nirgendwo gespeichert, sondern direkt verwendet.

und was hindert Sie daran, eine temporäre Variable zu erstellen?
 
TheXpert:
Und was hindert Sie daran, eine temporäre Variable zu erstellen?

Das tue ich auch. Ich verstehe nicht, warum die Entwickler das für mich tun sollten.

 
fxsaber:

Das tue ich auch. Warum die Entwickler das für mich tun sollten, verstehe ich nicht.

Damit das Leben einfacher wird und die Welt nicht aus den Fugen gerät? Sie können auch die automatische Generierung von Konstruktoren/Operatoren= nicht anerkennen.
 
fxsaber:

Das tue ich auch. Warum die Entwickler das für mich tun sollten, verstehe ich nicht.

Wie schön, dass die Schöpfer anderer Sprachen da weniger kategorisch sind
 
TheXpert:
Wie schön, dass die Schöpfer anderer Sprachen da weniger kategorisch sind

Nicht kategorisch. Ich möchte einfach keine Ressourcen für diesen Mist verschwenden, die schon jetzt nicht ausreichen, um selbst Bugs rechtzeitig zu schließen. Ganz zu schweigen von den neuen Funktionen. Von der Ankündigung bis zur Betaversion ist es eine sehr lange Zeit. Und es dauert sogar noch länger, bis die Betaversionen fertiggestellt sind. Und das nicht ohne lästige Hilfe von Forumsnutzern.


Deshalb werden solche Themen als Aufarbeitung von Schwachsinn wahrgenommen. Wenn so viele ernstere Dinge nicht getan werden.

 
fxsaber:

Deshalb werden Themen wie dieses als eine Art Aufarbeitung von Schwachsinn wahrgenommen. Wenn so viele ernstere Dinge nicht getan werden.

Jeder hat seine eigenen Prioritäten.

 

DieÜbergabe eines Parameters per Referenz bedeutet, dass ein Wert in die entsprechende Variable eingetragen wird, um diesen Wert später, nach dem Aufruf der Funktion, zu verwenden.

Wie kann eine temporäre Variable verwendet werden, wenn sie nicht das Ergebnis eines Ausdrucks ist?

 
Slava:

DieÜbergabe eines Parameters per Referenz bedeutet, dass ein Wert in die entsprechende Variable eingetragen wird, um diesen Wert später, nach dem Aufruf der Funktion, zu verwenden.

Wie kann eine temporäre Variable verwendet werden, wenn sie nicht das Ergebnis eines Ausdrucks ist?

Nun, das sind alles Feinheiten. Immerhin haben es die Pluspunkte geschafft. Für prvalue erfolgt eine vorübergehende Materialisierung. Das können Sie übrigens auch nicht tun

int get();
void fn(const int &);

fn(get()); // error
 
Igor Zakharov:

Dies ist höchstwahrscheinlich der Punkt, an dem ein weiteres Zeichen hinzugefügt wird (warum nicht alle 5 seit Beginn des Tests?):

Fordern Sie die Daten für alle Werkzeuge in OnInit an, sie werden sofort geladen.

 
Slava:

DieÜbergabe eines Parameters per Referenz bedeutet, dass ein Wert in die entsprechende Variable eingetragen wird, um diesen Wert später, nach dem Aufruf der Funktion, zu verwenden.

Wie verwendet man eine temporäre Variable, wenn sie nicht das Ergebnis eines Ausdrucks ist?

Was halten Sie davon, der Sprache die Möglichkeit hinzuzufügen, ein Argument als r-Wert zu übergeben? Dies würde alle Probleme sofort lösen und es ermöglichen, universelle Container für jeden Typ zu erstellen. Insbesondere würde die obige Methode für r-Wert überladen werden:

void push_back(const T &value);
void push_back(const T&&value);

Genau so ist es in allen STL-Containern implementiert.

Und das zweite Plus: es wird die Möglichkeit geben, Konstruktoren zu verschieben. Dies ist nun auch sehr mangelhaft, insbesondere für die Implementierung von Smart Pointers unique_ptr und anderen Klassen, die dazu bestimmt sind, eine einzigartige Ressource in sich selbst zu speichern, d.h. die üblichen Kopierkonstruktoren sind für sie inakzeptabel.