list-initialization

Dlaczego inicjalizacja listy (przy użyciu nawiasów klamrowych) jest lepsza od alternatyw?

MyClass a1 {a}; // clearer and less error-prone than the other three MyClass a2 = {a}; MyClass a3 = a; MyClass a4(a); Dlaczego? Nie mogłem znaleźć odpowiedzi na SO, więc pozwól mi odpowiedzieć na własne pytanie.

Usunięty konstruktor domyślny. Obiekty nadal mogą być tworzone ... czasami

Naiwni, optymistyczni i oh.. tak więc błędny widok jednolitej składni inicjalizacji c++11 Myślałem, że od C++11 obiektów ty ... ROR: use of deleted function `foo::foo()` /* Fb */ foo f{3}; // ERROR: no matching function to call `foo::foo(init list)`

Dlaczego standard różni się między direct-list-initialization i copy-list-initialization?

Wiemy, że {[1] } nazywa się bezpośrednią inicjalizacją, podczas gdy {[2] } nazywa się copy-initialization , co oznacza, że ... cze raz: Jaki jest pożytek z dzielenia listy-inicjalizacji na jej dwie formy, jeśli (najwyraźniej) robią dokładnie to samo?