Was würdet Ihr an C++ ändern, wenn Ihr keine Rücksicht auf Kompatibilität, Geld, Zeit, Arbeit, etc. nehmen müssten?
-
net schrieb:
groovemaster schrieb:
- binäre Fliesskomma Literale wie in C
was issn das?
Sowas zB
0x1.ffffp+10
-
groovemaster schrieb:
Sowas zB
0x1.ffffp+10
fliesskommakonstante als hexzahl? das ist total abgefahren
sowas wird man wohl in 100 jahren nicht gebrauchen... und das kann nur c, c++ nicht?
echt seltsam....
-
net schrieb:
@topic: ich würde referenzen abschaffen, pointer reichen voll und ganz
dann schaffst du auch operatoren überladung ab.
-
asdfghjkl schrieb:
Weitere Libs für: regex, netzwerk, threads, datenbank usw. wären nicht schlecht. Hier ist man immernoch auf externe Lösungen angewiesen.
aber nur wenns ordentlich modular aufgebäut wär
d.h. es müsste immernoch ohne den ganzen schnickschnack funktionieren
ned so ein verflochtenes nest wie die stdlibbei der stdlib heissts meist entweder sie gibts auf der plattform oder ned
was bedeutet, dass man für die meisten kleinen sachen gleich bei der libc bleiben kann
-
Und warum sollte z.B. regex auf std::string verzichten? Das willst du doch eigentlich damit andeuten?
Warum sollte es z.B. Regex nicht auf jedem System geben? Selbst jeder PDA hat Leistung und Speicher ohne Ende. Verstehe den Grund nicht, warum man noch die Minimalisten-Tour bei C++ fahren soll?
-
net schrieb:
fliesskommakonstante als hexzahl? das ist total abgefahren
sowas wird man wohl in 100 jahren nicht gebrauchen...Du musst es ja wissen.
-
camper schrieb:
net schrieb:
@topic: ich würde referenzen abschaffen, pointer reichen voll und ganz
dann schaffst du auch operatoren überladung ab.
auch das, der übersichtlichkeit wegen. sowas wie 'object.add()' ist viel eindeutiger. bestes negativbeispiel sind ja << und >> bei den streams, welche ja urspünglich bit-shift operatoren sind, aber da eine andere bedeutung haben. damit man so'n unfug gar nicht erst machen kann, kennt z.b. java auch keine operatorenüberladung.
hehe, das fällt schon auf - viele verbesserungen laufen auf sowas wie java hinaus
-
net schrieb:
camper schrieb:
net schrieb:
@topic: ich würde referenzen abschaffen, pointer reichen voll und ganz
dann schaffst du auch operatoren überladung ab.
auch das, der übersichtlichkeit wegen. sowas wie 'object.add()' ist viel eindeutiger.
Wieso das? Wenn ich zB zwei (mathematische) Vektoren habe und rechne
a = a + b; // bzw a += b;
ist das einfacher und intuitiver als
a.add(b);
Operatorüberladung (sowie Referenzen) abzuschaffen ist imo Unsinn. Wer sowas nicht nutzen will, braucht es ja auch nicht.
-
groovemaster schrieb:
Wieso das? Wenn ich zB zwei (mathematische) Vektoren habe und rechne
a = a + b; // bzw a += b;
ist das einfacher und intuitiver als
a.add(b);
was macht das '+'? addiert es immer zwei elemente der vektoren oder hängt es den einen vektor an den anderen dran?
groovemaster schrieb:
Operatorüberladung (sowie Referenzen) abzuschaffen ist imo Unsinn. Wer sowas nicht nutzen will, braucht es ja auch nicht.
manchmal muss man es. gibt viele libs die das einsetzen
-
net schrieb:
sowas wie 'object.add()' ist viel eindeutiger.
Beliebter Java Fehler:
a.add(b);
ups. falsch. add addiert b zu a und liefert das ergebnis ohne a zu verändern.
wäre mit + nicht passiert.+ ist natürlich genauso eindeutig wie eine methode 'plus', dh, wenn du die Methode plus zum dividieren verwendest, würdest du sagen 'doofer programmierer' und nicht 'doof dass man methoden selber benennen kann', oder?
macht
vec.add(otherVec);
jetzt eine addition von allen werten, da vec[0]+=otherVec[0] usw. oder hängt es otherVec an vec an?
wer kann das schon sagen. genauso bei +
es ergibt sich aus der api. bei einer guten api wird man das nicht verwechseln.ein
a.add(b)
ist aber immer zweideutig
natürlich kann man sagen, dass es sich aus der api ergibt, aber zB bei vec+otherVec kann ich immer zu einer methode append() wechseln, aber was amche ich bei a.add(b)? da kann ich nicht zu etwas anderem wechseln, um besser auszudrücken ob ich + oder += meine.mal von so perversitäten wie
a.add(b.multiply(c.divide(4)));
-
PD schrieb:
@irgendwer:
Das es dafür keinen technischen grund gibt ist nicht ganz wahr. Irgendwo brauchen Operatoren wie sizeof() auch ihre Infos ^^ Das bedeutet der Typ muss bekannt sein. Wenn man nun in seinem Hauptprogramm eine andere definition hätte (auf grund der fehlenden privates) als z.B. in seiner lib würde sizeof() wahrscheinlich mucken ^^ Und allgemein die Speicherverwaltung wäre ziemlich übel dran.Wer lesen kann ist im Vorteil : Ich schrieb über private Methoden welche nichts an der Größe ändern.
-
Artchi schrieb:
Und warum sollte z.B. regex auf std::string verzichten? Das willst du doch eigentlich damit andeuten?
Warum sollte es z.B. Regex nicht auf jedem System geben? Selbst jeder PDA hat Leistung und Speicher ohne Ende. Verstehe den Grund nicht, warum man noch die Minimalisten-Tour bei C++ fahren soll?
weil die industrie noch viele minnimalistensysteme einsetzt die mit c++ programmiert werden?
und die zahl der embedded systeme is eher am steigen als am zurückgehndu darfst nich nur den consumer markt sehn
-
this sollte in self umbenannt werden, und der typ von self sollte nicht T* sondern T& sein.
-
otze schrieb:
this sollte in self umbenannt werden,
lieber ocaml syle, da kann man this selber benennen
-
Shade Of Mine schrieb:
macht
vec.add(otherVec);
jetzt eine addition von allen werten, da vec[0]+=otherVec[0] usw. oder hängt es otherVec an vec an?
wer kann das schon sagen. genauso bei +im prinzip haste schon recht, man kann beides übelst missbrauchen. der nachteil an überladenen operatoren ist nur einfach die schlechtere lesbarkeit. ein unscheinbares a+b irgendwo im quelltext könnte man für 'ne addition halten d.h. es sieht total harmlos aus und wirkt etwas irreführend.
Sovok schrieb:
Artchi schrieb:
Und warum sollte z.B. regex auf std::string verzichten? Das willst du doch eigentlich damit andeuten?
Warum sollte es z.B. Regex nicht auf jedem System geben? Selbst jeder PDA hat Leistung und Speicher ohne Ende. Verstehe den Grund nicht, warum man noch die Minimalisten-Tour bei C++ fahren soll?weil die industrie noch viele minnimalistensysteme einsetzt die mit c++ programmiert werden?
naja, aber solche libs wären sicher optional. wenn man keine regex-library mit linkt dann gibt's das eben nicht.
-
net schrieb:
ein unscheinbares a+b irgendwo im quelltext könnte man für 'ne addition halten [...]
Und das sollte es ja auch sein, selbst bei Überladungen. Nur eine unscheinbare Addition ..
Nebenbei bemerkt vermisse ich in C++ etwas mehr Anpassung an dlls. Dann noch ein paar Kleinigkeiten, wie eine typsichere
Ellipse, oder Verkettungen von Konstruktoren, etc ..
-
ikona schrieb:
net schrieb:
ein unscheinbares a+b irgendwo im quelltext könnte man für 'ne addition halten [...]
Und das sollte es ja auch sein, selbst bei Überladungen. Nur eine unscheinbare Addition ..
ja, warum suche ich jetzt schon 5 stunden diesen fehler? es kann doch nicht an einer einfachen addition liegen
-
net schrieb:
ikona schrieb:
net schrieb:
ein unscheinbares a+b irgendwo im quelltext könnte man für 'ne addition halten [...]
Und das sollte es ja auch sein, selbst bei Überladungen. Nur eine unscheinbare Addition ..
ja, warum suche ich jetzt schon 5 stunden diesen fehler? es kann doch nicht an einer einfachen addition liegen
features rauszunehmen weil programmierer sie schlecht anwenden halt ich aber ned für sinnvoll
nen bug den ich wegen einer operatorüberladung nich gefunden hab hatt ich noch niebei punkttransformationen z.b. sind die operatoren göttlich
net schrieb:
naja, aber solche libs wären sicher optional. wenn man keine regex-library mit linkt dann gibt's das eben nicht.
der aktuelle stand bei c++ is eher, dass ich z.b. kein stdlib hab (string,vector) weil das system kein ordentliches filesystem hat und somit fstream nich portabel is
ich kenn die stdlib intern nich so genau aber die scheint ja nich sonderlich modular zu seinwenn also unser jetziges system nich optimal is sollte es eher überarbeitet werden, bevor man was neues hinzufügt
-
Sovok schrieb:
net schrieb:
naja, aber solche libs wären sicher optional. wenn man keine regex-library mit linkt dann gibt's das eben nicht.
der aktuelle stand bei c++ is eher, dass ich z.b. kein stdlib hab (string,vector) weil das system kein ordentliches filesystem hat und somit fstream nich portabel is
eigentlich kann man auf minimalsystemen alles vergessen, was dynamischen speicher braucht. ...und c++ ohne 'new' ist nur noch zur hälfte zu gebrauchen
-
Yo, Minimal-Systeme programmiert man (wenn man eine Hochsprache benutzen will) doch eher in C oder in J2ME?