Vorzeichen einer Variable ändern
-
Ich bezweifle, dass make_neg irgendeinen Vorteil gegenüber -abs hat.
-
y=-sqrt(pow(x,2));
-
Bashar schrieb:
Ich bezweifle, dass make_neg irgendeinen Vorteil gegenüber -abs hat.
Es liest sich wesentlich deutlicher als
-std::abs.Darüber hinaus, auch wenn man diese Anwendungsfälle aus dem OP höchstens erahnen kann: man kann bestehende Datenmengen wesentlich simpler via
std::transformbearbeiten, und stattif elseeinen Funktionszeiger als Input bzw. Outputfilter verwenden.
-
Jo ... :xmas2: Performance pur!!!
-
finix schrieb:
Bashar schrieb:
Ich bezweifle, dass make_neg irgendeinen Vorteil gegenüber -abs hat.
Es liest sich wesentlich deutlicher als
-std::abs.Ja klar, irgendwelche privaten Hilfsfunktionen sind besser lesbar als Standardfunktionen.
-
Bashar schrieb:
Ja klar, irgendwelche privaten Hilfsfunktionen sind besser lesbar als Standardfunktionen.
Ich meinte zwar ursprünglich vor allem (D)Evil, aber, ja: eine prägnant benannte, private Hilfsfunktion lässt sich leichter lesen als ein equivalenter Ausdruck der nur Standardfunktionen enhält.
Wenn dieser Ausdruck wirklich nur an einer einzigen Stelle im Programm vorkommt, dann würde ich wohl auch zu deiner Variante greifen, auch wenn ich hier tendenziell dem ternären Operator den Vorzug gäbe; andernfalls stelle ich mir ganz klar die Funktionen zur Verfügung.
-
finix schrieb:
Bashar schrieb:
Ja klar, irgendwelche privaten Hilfsfunktionen sind besser lesbar als Standardfunktionen.
Ich meinte zwar ursprünglich vor allem (D)Evil, aber, ja: eine prägnant benannte, private Hilfsfunktion lässt sich leichter lesen als ein equivalenter Ausdruck der nur Standardfunktionen enhält.
Wenn dieser Ausdruck wirklich nur an einer einzigen Stelle im Programm vorkommt, dann würde ich wohl auch zu deiner Variante greifen, auch wenn ich hier tendenziell dem ternären Operator den Vorzug gäbe; andernfalls stelle ich mir ganz klar die Funktionen zur Verfügung.
(rant on)
Also was ist einfacher zu lesen & verstehen,-std::abs(v)oder(v > 0 ? -v : v)? Hmmm...
Und was ist hier einfacher:std::standard_funktion(v)oderselbstbenannte_funktion_mit_komischem_namen_der_finix_logisch_vorkommt_aber_nix_aussagt(v)? Hmmm.Nur weil du denkst dass "make_neg" eine "prägnant benannte, private Hilfsfunktion" ist heisst das noch lange nicht dass andere das auch denken, und auf den ersten Blick verstehen was "make_neg" heissen soll.
Ich kenne Code der von Leuten geschrieben wurde die (vermute ich mal) ähnlich denken wie du, und ich hasse es solchen Code zu lesen.Nenn die Funktion wenigstens "negative_absolute_value" oder sowas, wenn du schon umbedingt eine (IMO sinnfreie) private template Hilfsfunktion verwenden willst. Und implementiere sie bitte über
-std::abs(v), kein Grund kryptisch zu werden für sowas einfaches.
(rant off)
-
Hallo,
es gibt eine Standardfunktion für minus, operator-, schreibt man meist schlicht -. Es gibt eine Standardfunktion für den Absolutwert std::abs. Damit erscheint mir -std::abs eigentlich eine recht gute Bezeichnung zu sein. Und wenn mir das tatsächlich zu kompliziert wäre, dann würde ich mich wohl an den Namen der Standardfunktionen orientieren und neg_abs oder ähnliches verwenden.
-
hustbaer schrieb:
(rant on)
Auf sowas muss ich glaube ich nicht unbedingt antworten

-
HumeSikkins schrieb:
Hallo,
es gibt eine Standardfunktion für minus, operator-, schreibt man meist schlicht -. Es gibt eine Standardfunktion für den Absolutwert std::abs. Damit erscheint mir -std::abs eigentlich eine recht gute Bezeichnung zu sein.Das ist für sich allein gestellt sicher richtig.
Allerdings ist
-std::abskeine Bezeichnung sondern ein Ausdruck. Er ist keineswegs lesbarer alsneg_absund lässt sich nicht speichern.