Kontrollstruktur unless?
-
Tachyon schrieb:
Eine ulkige Aussage im Hinblick darauf, dass Du in Deinen gesamten Ergüssen hier NUR Aussagen triffst ohne jemals Argumente dazu zu liefern.
Dir ist glaube ich echt nicht mehr zu helfen.
-
So. Das ganze ist ja ein richtiger Flamewar geworden.
Egal, ich stelle mich mal (komplett?) auf die Seite von 'f, und führe folgendes Argument an: BOOST_FOREACH.
PS: Ich gelande zum Eindruck, dass einige der Poster hier das Wissen von 'f extrem unterschätzen und dadurch vorschnelle Schlüsse ziehen.
-
Tachyon schrieb:
Da haben die Entwickler die Contraint- und Type-Checks des Compilers abgeschaltet.
Wo hast du denn das her?
-
Bashar schrieb:
Tachyon schrieb:
Da haben die Entwickler die Contraint- und Type-Checks des Compilers abgeschaltet.
Wo hast du denn das her?
Jo, stimmt, in der Form Blödsinn. Die haben die auftretenden Exceptions nicht behandelt.
boost::BOOST_FOREACH wird ziemlich sicher nicht seinen Weg in C++0x finden. Zumindest nicht in der Form. Dafür wird es wohl ein echtes Keyword bekommen.
-
Bashar schrieb:
Tachyon schrieb:
Da haben die Entwickler die Contraint- und Type-Checks des Compilers abgeschaltet.
Wo hast du denn das her?
Weiß nicht wo er das herhat, aber um das zu korrigieren: Es wurden vielmehr die Laufzeitüberprüfungen abgeschaltet, was zu einem unbemerkten Überlauf führte.
-
Tachyon schrieb:
Bashar schrieb:
Tachyon schrieb:
Da haben die Entwickler die Contraint- und Type-Checks des Compilers abgeschaltet.
Wo hast du denn das her?
boost::BOOST_FOREACH wird ziemlich sicher nicht seinen Weg in C++0x finden. … Dafür wird es wohl ein echtes Keyword bekommen.
I rest my case.
'f, wir haben uns ein Bier verdient.
(Abgesehen davon möchte ich noch zu Protokoll geben, dass ich 'unless' auch nicht mag. Aber die Argumentation, die hier dagegen geführt wurde, war echt daneben.)
-
FOR_EACH wird ziemlich sicher nicht seinen Weg in C++0x finden
weil es in C++0x ein for für ranges gibt (wie ein for-each), das im prinzip rein als textersetzung implementiert werden kann.
Konrad Rudolph schrieb:
Egal, ich stelle mich mal (komplett?) auf die Seite von 'f, und führe folgendes Argument an: BOOST_FOREACH.
es ging ja ursprünglich um das unless. natürlich ist die argumentation nicht hart, wenn ich schon schreibe:
me, myself schrieb:
vielleicht habe ich es nicht klar genug gesagt, aber in dem punkt, vorhandene sprachmittel zum herunterbrechen und verständlich-machen (im rahmen eines bestimmten bezugssystems) zu nutzen, stimme ich dir voll und ganz zu.
da muss man eben abwägen. ich persönlich finde BOOST_FOREACH zwar nicht ganz so hübsch, aber gerechtfertigt, wenn man sich die alternative ansieht. in c++0x wird das ganze sowieso auf eine (ähnliche) elegante weise gelöst.
das liefert aber keine begründung dafür, z.b. unless zu definieren (und wenn, dann höchstens UNLESS) - oder andere, seltsame konstrukte, wie BEGIN und END über makros einzuführen.
das eine ist eine frage des geschmacks, das andere eine frage der sinnhaftigkeit.
-
queer_boy schrieb:
ich persönlich finde BOOST_FOREACH zwar nicht ganz so hübsch, aber gerechtfertigt, wenn man sich die alternative ansieht. in c++0x wird das ganze sowieso auf eine (ähnliche) elegante weise gelöst.
das liefert aber keine begründung dafür, z.b. unless zu definieren (und wenn, dann höchstens UNLESS) - oder andere, seltsame konstrukte, wie BEGIN und END über makros einzuführen.
Nö. In der Doku von Boost.Foreach wird explizit auf die Möglichkeit hingewiesen, in eigenen Quelldateien folgende Definition einzuführen:
#define foreach BOOST_FOREACHVerwende ich am laufenden Band.
das eine ist eine frage des geschmacks
Programmierer führen mir zu oft „Geschmack“ als Argument an. Programmieren ist in erster Linie eine Technik/Wissenschaft und keine Kunst. „Geschmack“ ist meist nur ein Mangel empirischer Daten.
Abgesehen davon muss man natürlich Vor- und Nachteile abwägen und an diesem Punkt würde ich 'unless' eben auch durchfallen lassen (anders als 'foreach'), weil es quasi keinen Nutzen bringt. Ich bezweifle stark, dass 'unless(x)' gegenüber 'if (not x)' auch nur den geringsten Lesbarkeitsvorteil bringt. Neue Sprachmittel einzuführen sollte man schon gut begründen können.
-
Konrad Rudolph schrieb:
Ich bezweifle stark, dass 'unless(x)' gegenüber 'if (not x)' auch nur den geringsten Lesbarkeitsvorteil bringt.
meiner meinung nach eher das gegenteil. ich würde jedes mal "WTF?" denken. ist auch eine sache der gewohnheit.
makros sollten wirklich nicht als ersatz für schlüsselwörter herhalten. ich hatte mal den fall, dass jemand "elif" als "else if" definierte. hat keinen spaß gemacht damit zu arbeiten.
-
ich meinte: ich finde BOOST_FOREACH nicht so hübsch (denn das ganze ist trotzdem nur ein hack, das fehlende sprachfunktionalität ersetzt) - explizit im vergleich zu C++09s for(each). du kannst hier sagen, dass du foreach hübsch genug findest, um es zu verwenden (und wenn es bloß deinen code kürzer macht). die gründe sind zwar praktische, aber letzten endes ist genau das geschmackssache. ist ja nicht so, dass man das nicht begründen kann; nur darüber zu streiten löst einen flamewar aus.
-
Tachyon schrieb:
Bashar schrieb:
Tachyon schrieb:
Da haben die Entwickler die Contraint- und Type-Checks des Compilers abgeschaltet.
Wo hast du denn das her?
Jo, stimmt, in der Form Blödsinn. Die haben die auftretenden Exceptions nicht behandelt.
Wenn ich den Link, den du gegeben hast, richtig interpretiere, wurde die Exception sehr wohl behandelt. Leider durch Einleitung der Selbstzerstörung.