C++ Gurus
-
ihr seid komplett durchgeknallt
-
net schrieb:
ihr seid komplett durchgeknallt
Nein, wir sind Gurus.
-
Hier gehts irgendwie nur darum dass jeder Recht haben will...
-
Michael E. schrieb:
[..ne Menge Zeug..]
Mein Browser ist grad abgeschmiert und hat meine Antwort mitgerissen.
Ist wahrscheinlich auch besser so.
Ich hab ohnehin keine Lust mehr auf deine rethorischen Spielchen und [edit: so weiter] einzugehen.Wenn ich dich nicht komplett mißverstanden habe sehen wir diese Bezeichnerfrage bei Templates ohnehin relativ ähnlich. Lies es nach oder lass es.
-
OK.
-
Ich finde es lediglich komisch dass wenn ich sage "ein anfaenger sollte lieber ein wort zuviel als zu wenig schreiben" ein IchBinJaSoEinVerdammtLangerBezeichner rauskommt. Unter _einem_ Wort verstehe ich etwas, dass in etwa _einem_ Wort entspricht.
Ich sage, man solle Value schreiben wenn man Value meint und nicht V (denn V kann fuer Vector, Verkorkst, Verdummung, etc. stehen). Ich habe nie gesagt man solle Romane schreiben...
Und ob man jetzt in speziellen Situationen T verwenden soll ist auch eine ganz andere Frage... Ausnahmen wird es immer geben. Und mir geht es hier auch nicht um wegwerf code oder einzeiler, sondern ordentliche Anwendungen - da kann man nicht immer alles herleiten (bzw. koennen schon, aber man will es nicht, weil man dann vor lauter Namen herleiten den Code nicht mehr lesen kann...)
Und da mir bei dem copy Beispiel recht gegeben wurde, sehe ich das als bestaetigung dass wir an einander vorbeigeredet haben.
-
Optimizer schrieb:
Map<KeyType, ValueType> zu haben?
KeyType und ValueType sind Typen, nicht wahr. Warum ist es hier jetzt auf einmal toll das in den Namen reinzuschreiben, aber bei Variablen heißt es UN und ist scheiße?
-
Wenn ich dich nicht komplett mißverstanden habe sehen wir diese Bezeichnerfrage bei Templates ohnehin relativ ähnlich.
*löl*
-
Shade Of Mine schrieb:
Ich finde es lediglich komisch dass wenn ich sage "ein anfaenger sollte lieber ein wort zuviel als zu wenig schreiben" ein IchBinJaSoEinVerdammtLangerBezeichner rauskommt. Unter _einem_ Wort verstehe ich etwas, dass in etwa _einem_ Wort entspricht.
Entweder meinst du "1" Wort im übertragenen Sinne oder ganz exakt. Wenn du's im übertragenen Sinne meinst solltest du es auch dementsprechend klar machen (vor allem jenen gegenüber denen du diesen Tipp gibst). Meinst du es wortwörtlich dann ist ein Wort zuviel ein Wort zuviel.
Shade Of Mine schrieb:
Ich sage, man solle Value schreiben wenn man Value meint und nicht V (denn V kann fuer Vector, Verkorkst, Verdummung, etc. stehen). Ich habe nie gesagt man solle Romane schreiben...
Natürlich, wurde nie bestritten, zumindest nicht von mir, aber wenn du einen Value-of-T[ype]-Template hast, was spricht gegen typename T? Einen Algorithmus dessen Argumente keine inherenten Einschränkungen/Anforderungen aufweisen? Einen Container-of-T?
Bestenfalls bringst du redundante Informationen im Code unter.Shade Of Mine schrieb:
Und da mir bei dem copy Beispiel recht gegeben wurde, sehe ich das als bestaetigung dass wir an einander vorbeigeredet haben.
Scheint fast so.
aussenstehender schrieb:
Wenn ich dich nicht komplett mißverstanden habe sehen wir diese Bezeichnerfrage bei Templates ohnehin relativ ähnlich.
*löl*
Was ist daran so albern?
-
Jester schrieb:
Optimizer schrieb:
Map<KeyType, ValueType> zu haben?
KeyType und ValueType sind Typen, nicht wahr. Warum ist es hier jetzt auf einmal toll das in den Namen reinzuschreiben, aber bei Variablen heißt es UN und ist scheiße?
KeyType und ValueType und sind keine Typen, sie stehen für Typen.
-
Jester schrieb:
Optimizer schrieb:
Map<KeyType, ValueType> zu haben?
KeyType und ValueType sind Typen, nicht wahr. Warum ist es hier jetzt auf einmal toll das in den Namen reinzuschreiben, aber bei Variablen heißt es UN und ist scheiße?
Gut, stimmt schon, gegen Key und Value würd ich jetzt auch nichts sagen. Es sollte sich auch mehr auf den Unterschied zu K und V beziehen.
-
finix schrieb:
Jester schrieb:
...
KeyType und ValueType und sind keine Typen, sie stehen für Typen.
Macht es einen Unterschied? Nein. Trägt dein Kommentar dazu bei, die Diskussion weiterzuführen? Nein. Wieso zum Geier machst du es dann?
-
finix schrieb:
KeyType und ValueType und sind keine Typen, sie stehen für Typen.
das ist unfug.
KeyType und ValueType sind typen.
"KeyType" und "ValueType" stehen für typen.
namen wie "KeyType" werden in der deutschen sprache ausgewertet zum objekt, das sie benamsen. willste den namen selbst benutzen, mußte schon quoten."finix" hat vorne ein 'f'.
finix hat aber vorne eine nase.
-
irgendwie fühlt sich das aber nicht gut an, wenn man nicht Type benutzt
-
selbst hume sikkins benutzt meistens nur einzelne buchstaben für template-parameter
template <class H, class E> struct MemFunInvoker { // restores the type of h and e then dispatches the event to the // appropriate member funtion. static void invoke(const Handler& h, const void* e) { event::CallTraits<H, E>::handle(*static_cast<H*>(const_cast<void*>(h.obj_)), *static_cast<const E*>(e)); } static void invokeConst(const Handler& h, const void* e) { event::CallTraits<H, E>::handleConst(*static_cast<const H*>(h.obj_), *static_cast<const E*>(e)); } }; template <class Fun, class E> struct FunInvoker { static void invoke(const Handler& h, const void* e) { reinterpret_cast<Fun>(h.fun_)(*static_cast<const E*>(e)); } };
-
wtf???? schrieb:
selbst hume sikkins benutzt meistens nur einzelne buchstaben für template-parameter
Und mir sagt H und E hier garnichts.
Aber ich sagte ja: diese kurzen Bezeichner sind so gaengig geworden und das ich genau das nicht verstehe. Ich habe sie ja selber lange genug verwendet
-
@wtf????
Ich habe den Thread nicht verfolgt, aber falls der Topic-Titel programm sein sollte, dann macht es herzlich wenig Sinn Code von mir als Pro- oder Contra-Argument zu verwenden.
Da ich die Voraussetzung nicht erfülle, ist jede Schlussfolgerung uninteressant.Und mir sagt H und E hier garnichts.
Was sicher ein wenig daran liegt, dass der Code aus dem Kontext gerissen ist.
Betrachtet man den Code in dem Kontext in dem er steht, dann erfordert es keinen Doktortitel um zu erkennen, dass H für Handler und E für Event steht. Desweiteren sollte man vielleicht berücksichtigen, dass der Code ein Implementationsdetail aus einem detail-Namespace ist, also nicht für den allgemeinen Gebrauch gedacht ist.Bei öffentlichen Klassen benenne ich normalerweise entweder die Template-Parameter sinnvoll oder aber erzeuge zumindest ein hübsches typedef innerhalb der Definition. Leiger bin ich diesbezüglich oft aber auch etwas nachlässig.
Schlimmer finde ich es allerdings, wenn die Semantik des Templateparmeters nicht beschrieben ist (welche Eigenschaften muss ein konkretes Argument erfüllen).
-
es geht nicht mehr um gurus
-
HumeSikkins schrieb:
Was sicher ein wenig daran liegt, dass der Code aus dem Kontext gerissen ist.
Klar, nur sehe ich halt den dennoch keinen Vorteil in einem H wenn man es auch Handle nennen kann... Und genau das habe ich gesagt: "ich verstehe es nicht". Wobei ich es auch lange so gemacht habe, aber wie ich mal darueber nachgedacht habe, habe ich festgestellt, dass es nur Bequemlichkeit ist.
-
verstehe die einstellung von HumeSikkins nicht. man sollte doch überall gut programmieren (wenn man es kann) und nicht nur nach aussen hin.