Mam następujący konstruktor:Dlaczego podwójne puste nawiasy klamrowe {{}} tworzą std :: initializer_list <double> z jednym elementem, a nie zerem?
MyItem(std::initializer_list<double> l) {
std::cout << "l size " << l.size() << ")" << std::endl;
}
który nazywa się później z podwójnych nawiasach klamrowych:
MyItem{{}}
l.size wynik() daje to 1.
Co znajduje się za mechanika takie zachowanie?
Wygląda na to, że zagnieżdżony {} odgrywa rolę domyślnego konstruktora dla jedynego elementu, ale nie do końca rozumiem, dlaczego i jak działa dedukcja.
Weź pod uwagę, że istnieje rosyjski stackoverflow na http://ru.stackoverflow.com –