Ich habe über die Verengung Konvertierung auf der cpp Referenz Website gelesen. Ich habe es irgendwie verstanden, aber was ich nicht verstehe ist, warum ist der Fehler nur in der ersten Zeile vorhanden.Verengung Konvertierung während der Initialisierung der Liste erforderlich
long double ld = 3.1415926536;
int a{ld}, b = {ld}; // error: narrowing conversion required
int c(ld), d = ld; // ok: but value will be truncated
Warum ist der Fehler nur in der ersten Zeile vorhanden und nicht die zweite?
Denken Sie daran, dass eine einheitliche Initialisierung ein neueres Konzept ist. Es wurde im Nachhinein entwickelt. Bedenken Sie auch, dass es nicht trivial ist, das Verhalten von althergebrachten Mechanismen zu ändern. –