Welche C Prinzipien sind für C++ nicht gültig?
-
In diesem Beitrag auf Stackoverflow werden ein paar Beispiele genannt.
-
Für sprachtechnische Unterschiede gibt's im C++-Standard einen vollständigen Anhang. Was die Standardbibliothek angeht, solltest du alsRichtschnur von allem aus der C-Standardbibliothek die Finger lassen, für das es in C++ direkten Ersatz gibt. Seit C++11 ist das alles außer die Header cassert, cmath, csetjmp (den sowieso nicht benutzen!), csignal (den sowieso nicht benutzen!) und cstdlib.
-
<cstring> ist uU recht nützlich.
-
@SeppJ: Warum <csignal> nicht benutzen?
-
Ethon schrieb:
<cstring> ist uU recht nützlich.
Was kann cstring, was man mit string nicht kann und wo string nicht besser wäre?
Kellerautomat schrieb:
@SeppJ: Warum <csignal> nicht benutzen?
Weil signal ein sehr ungünstig definiertes Verhalten hat, wenn mehrere Signale schnell hintereinander oder gar gleichzeitig kommen. Man sollte stattdessen unbedingt die Funktionen des Betriebssystems benutzen. Die Linux-Manpage zu signal rät sogar ausdrücklich von der Benutzung ab.
-
Ich hätte schwören können, sigaction wäre im Standard dabei. Ist es wohl aber nicht.
-
SeppJ schrieb:
Ethon schrieb:
<cstring> ist uU recht nützlich.
Was kann cstring, was man mit string nicht kann und wo string nicht besser wäre?
Für Strings mit einer statischen Maximalgröße ist std::string manchmal unnötig.
Man muss ja nicht für jeden Mist dynamisch Speicher allozieren & kopieren.
-
Ethon schrieb:
Für Strings mit einer statischen Maximalgröße ist std::string manchmal unnötig.
Man muss ja nicht für jeden Mist dynamisch Speicher allozieren & kopieren.In der Tat. Dafür verwendet man eigene String Klassen. Genauso wie für ropes.
Der Punkt aber ist: du verwendest eine Klasse und nie nie nie strcpy oder dergleichen.
-
Ethon schrieb:
Für Strings mit einer statischen Maximalgröße ist std::string manchmal unnötig.
Man muss ja nicht für jeden Mist dynamisch Speicher allozieren & kopieren.Für Strings mit einer kleinen statischen Maximalgröße (meist um die 16 Zeichen) machen die meisten std::string-Implementierungen das nicht einmal.
-
Ethon schrieb:
SeppJ schrieb:
Ethon schrieb:
<cstring> ist uU recht nützlich.
Was kann cstring, was man mit string nicht kann und wo string nicht besser wäre?
Für Strings mit einer statischen Maximalgröße ist std::string manchmal unnötig.
Man muss ja nicht für jeden Mist dynamisch Speicher allozieren & kopieren.Premature Optimisation? Ist ja nicht so tragisch, außer du hast eine extrem zeitkritische Umgebung und selbst da würde man eher gleich zu C greifen.