using std? = nicht professionell (Umfrage)
-
hustbaer schrieb:
@Mr.Long
Sorry,using namespace.Also du verwendest Namespaces um Namenskonflikte zu vermeiden, holst dann 100 Namespaces mit
using namespacerein, verwendest Klassen aus diesen 100 Namespaces und bekommst dann trotzdem keine Namenskonflikte.
Sehr interessant.EDIT: Bei "bekommst trotzdem keine Namenskonflikte" meine ich dass du keine "ambiguous name" Fehler beim Kompilieren bekommst.
Nicht Fehler beim Linken o.ä. weil die "fully qualified names" unterschiedlich wären. Letzteres ist natürlich durch die Verwendung von Namespaces sichergestellt, das ist mir schon klar. (Vorausgesetzt die Namespaces der einzelnen Module/Libraries sind alle unterschiedlich, aber das ist sowieso Voraussetzung dafür dass Namespaces überhaupt irgendwas bringen.)Ich verstehe nicht was du von mir willst. Vielleicht solltest du mal meine Antwort nochmal durchlesen.
Man kann halt nicht alles haben.
-
Edit: die antwort muss noch verfeinert werden.
-
@Mr.Long
Ja, du hast Recht.
Ich hab mir mal wieder zu wenig Zeit genommen und etwas gelesen was gar nicht dasteht.
Sorry.Ja, wenn du 100 Klassen aus nur einem Namespace brauchst, dann ist
using namespacevermutlich OK. Und wird auch nicht zu Namenskonflikten führen.
-
ich benutze 'using namespace' meist für std::placeholders (EDIT2: Die ja ein wenig aus der Mode sind), C++14 predefined literals und boost krams. EDIT: und eigenes im kleinen scope.
den standard hole ich mir (fast?) nie komplett.
ich habe nichts dagegen std::vector und std::string zu schreiben. Ich finde es auch irgendwie besser lesbar...EDIT3: using namespace XYZ; in einem Header wiederum halte ich für eine Straftat
-
Inwiefern sind std::placeholders aus der Mode?
-
crazyyzarc schrieb:
Hey,
mir wurde erklärt, wiederholte mal erklärt das:
using namespace std;kein professionelles Programmieren ist - was haltet ihr davon? Wie macht ihr das?
Pros verwenden auf keinen Fall using, i++, delete und if-schleifen.
-
ImbaProProgger schrieb:
crazyyzarc schrieb:
Hey,
mir wurde erklärt, wiederholte mal erklärt das:
using namespace std;kein professionelles Programmieren ist - was haltet ihr davon? Wie macht ihr das?
Pros verwenden auf keinen Fall using, i++, delete und if-schleifen.
Nein, das ist wie in der Kirche. Die Pros predigen, diese Dinge niemals nicht zu tun, aber dann tun sie es heimlich doch, wenn keiner zuguckt und reden sich ein, dass sie schließlich verantwortungsvoll damit umgehen können.
-
Du verwendest
delete? Das wirft ja ein ganz neues Licht auf dich
-
Nach meiner Erfahrung ist "using namespace std" sehr professionell. Auch im Header. Im professionellen Bereich wird Code zusammengefrickelt bis es funktioniert. Sollte dann doch mal guter Code in der Produktion landen, wird es so lange kaputt gepflegt, bis niemand Bereit ist, für die kleinste Änderung Verantwortung zu übernehmen. "using namespace std" hilft, Code unwartbar zu machen. Ist keine grosse Hilfe, aber doch ein Schritt in die Richtung.
-
AntiSepp schrieb:
Du verwendest
delete? Das wirft ja ein ganz neues Licht auf dich
Ne, er verwendet es ja nur im Dunkeln.
-
Bei kurzen namespaces wie "std", "sf" oder vielleicht auch "OpelPopel", die nicht über eine gewisse Wortlänge hinausreichen und nicht unübersichtlich sind, würde ich nie using namespace benutzen.
Bei bibliotheken wie z.B. Boost, wo es lange namespaces gibt, benutze ich es hingegen.
-
Trampeltier schrieb:
Bei bibliotheken wie z.B. Boost, wo es lange namespaces gibt, benutze ich es hingegen.
Dafür sind allerdings namespace aliase da.
-
camper schrieb:
Trampeltier schrieb:
Bei bibliotheken wie z.B. Boost, wo es lange namespaces gibt, benutze ich es hingegen.
Dafür sind allerdings namespace aliase da.
+1 dafür.
Das Feature scheint oft übersehen zu werden.
-
Arcoth schrieb:
Inwiefern sind std::placeholders aus der Mode?
std::placeholders + std::bind: wegen lambdas.
EDIT: aber ich denke das könnte sehr leich in eine offtopic diskussion ausarten

-
crazyyzarc schrieb:
Hey,
mir wurde erklärt, wiederholte mal erklärt das:
using namespace std;kein professionelles Programmieren ist - was haltet ihr davon? Wie macht ihr das?
Hey, wer hat dir das den erklärt? Es hat nichts mit professionel o. unprofessionel zu tun, sondern, mit Effektivität - mit besserer Wartbarkeit!
Es gibt tausende professionelle (was für ein Wort!) Programmierer die "using namespace std;" vorschlagen und nutzen ,sogar Stroustrup, aber dieser gewisser "Er" will die alle in Frage stellen? Den will ich sehen.
lg
Sandor++
-
cooky451 schrieb:
AntiSepp schrieb:
Du verwendest
delete? Das wirft ja ein ganz neues Licht auf dich
Ne, er verwendet es ja nur im Dunkeln.
Dein Ernst?
5cript schrieb:
Arcoth schrieb:
Inwiefern sind std::placeholders aus der Mode?
std::placeholders + std::bind: wegen lambdas.
Es gibt genug Leute die nach wie vor
bindverwenden. E.g. wenn mit Code von prä-C++11 gearbeitet wird, mag man nicht alleboost::binds durch Lambdas ersetzen, aber dasboostzustdzu ändern ist durchaus praktikabel, vor allem um die Abhängigkeit zu verlieren.EDIT: aber ich denke das könnte sehr leich in eine offtopic diskussion ausarten

Und inwiefern rechtfertigt das einen skeptischen Smiley?
-
Arcoth schrieb:
cooky451 schrieb:
AntiSepp schrieb:
Du verwendest
delete? Das wirft ja ein ganz neues Licht auf dich
Ne, er verwendet es ja nur im Dunkeln.
Dein Ernst?
Langsam sollte es dir aber dämmern

(Keine Beleidigung ich wollte nur bei den Beleuchtungswortspielen mitmachen, vielleicht finden sich ja noch mehr :),
falls jemanden also ein Licht aufgehen sollte nur her damit... )
-
Ich finde, dass das sehr hilfreich sein kann, wenn man einen großen/langen Code hat, wo man das dauernd braucht, !aber! wenn man den Code jetzt nur noch ohne "sf::" oder "std::" kennt und jetzt etwas Neues anfängt, vergisst man eventuell diese!
-
-
crazyyzarc schrieb:
Sandor++ schrieb:
Den will ich sehen.
Ab 03:35 - https://youtu.be/3_1dhL0eVp4?t=3m35s
Das höre ich jetzt zum ersten mal. Aber den Grund habe ich immer noch nicht so ganz verstanden. Aber das muss jeder selbst entscheiden und wird dann merken nach
200 Zeilen Code oder mehr was einfacher ist.
Ich beziehe mich auf bessere Wartbarkeit und bleibe dabei.