Welche Ausgabe erwartet ihr?
-
"Meine Glaskugel ist gerade zur Reparatur".
Das sagen wir wenn der Code oder der Fehler (bzw. die Fehlermeldung) nicht gepostet wurde, Dinge die wir nicht erraten können.
-
Statist schrieb:
M.M.n. ist es eine Sauerei die Uniform Initialization für Konstruktoraufrufe von non-POD-Typen zu verwenden weil das Verhalten vom Code davon abhängig ist, ob ein
std::initializer_list-Konstruktor definiert ist.Ich würde sagen, dass es bad practise ist, sowohl einen
std::initializer_list-Konstruktor anzubuieten als auch einen Konstruktor mit zwei Argumenten vom selben Typ.
-
Skym0sh0 schrieb:
Ja? Uniform Initialization ist dafür da, dass alle Initialisierungen gleich aussehen.
Da hab ich es einfacher. Bei mir sind sie dazu da, Container initial zu befüllen.
-
volkard schrieb:
Skym0sh0 schrieb:
Ja? Uniform Initialization ist dafür da, dass alle Initialisierungen gleich aussehen.
Da hab ich es einfacher. Bei mir sind sie dazu da, Container initial zu befüllen.
Da du mich ja eh immer berichtigst, dann mach es wenigstens auch hier.
Hab ich Uniform Initialization falsch verstanden, oder wie?Oder ists wieder einer deiner Trollposts und du meinst eigentlich Initializer Lists?
-
volkard schrieb:
Skym0sh0 schrieb:
Ja? Uniform Initialization ist dafür da, dass alle Initialisierungen gleich aussehen.
Da hab ich es einfacher. Bei mir sind sie dazu da, Container initial zu befüllen.
So handhabe ich das auch.

-
Volkard meint, er verwendet etwas, was wie ein Konstruktoraufruf aussieht
std::vector< int > foo( 2, 0 );wenn er klarstellen will, daß kein Konstruktor aufgerufen wird, der eine
initializer-listnimmt.Er würde also nie-nicht etwas schreiben wie
for( unsigned i{}; i < MAX; ++i );.

-
Bei mir sind sie dazu da, Container initial zu befüllen.
Und was ist mit Aggregat-Initialisierungen?
-
Swordfish schrieb:
Er würde also nie-nicht etwas schreiben wie
for( unsigned i{}; i < MAX; ++i );.

Genau!
Überlegen muss ich mir noch
auto main(void) -> int { … return {}; }
-
Arcoth schrieb:
Bei mir sind sie dazu da, Container initial zu befüllen.
Und was ist mit Aggregat-Initialisierungen?
Ja, es gibt Ausnahmen.
Nach Möglichkeit wünsche ich mir für structs auch normale Konstruktoren.
Ich nenne mal
static YesType Check(SizeToType<sizeof(U{})>*);
-
volkard schrieb:
Überlegen muss ich mir noch
auto main() -> int { … return {}; }Och, das ist doch ganz einfach:
#include <cstdlib> auto main() -> decltype( EXIT_SUCCESS ) { return decltype( EXIT_SUCCESS )(); }