Partager via


Erreur du compilateur C2076

Une liste d’initialiseurs entre accolades ne peut pas être utilisée dans une nouvelle expression dont le type contient « auto/decltype(auto) »

Si un auto spécificateur de type apparaît dans la séquence de spécificateur d’un nouvel identificateur de type ou de l’identificateur de type d’une new expression, l’expression doit contenir un initialiseur du formulaire ( assignment-expression ). Le compilateur déduit l’identificateur de type de l’initialiseur assignment-expression . Par exemple,

new auto(42);            // new allocates int
auto c = new auto('a');  // c is of type char*, new allocates char
new (auto*)(static_cast<short*>(nullptr));   // allocates type short*

Pour résoudre ce problème, utilisez des parenthèses pour placer la valeur d’initialisation de l’expression new .