Die folgende compiles auf MSVC:Initialisiererliste Konstruktor akzeptieren Iteratoren
#include <initializer_list>
#include <iterator>
int main()
{
int parameters[4]{1, 2, 3, 4};
auto b = std::begin(parameters);
auto e = std::end(parameters);
std::initializer_list<int> il(b,e); // where is the constructor specified in the standard?
}
benutzte ich dieses Verhalten another question zu beantworten, aber während einige der Forschung fand ich, dass dieser Konstruktor ist not actually in the standard.
Ich habe Spracherweiterungen mit den /Za
und /permissive-
Flags deaktiviert, aber es kompiliert noch.
Ist das ein Fehler in MSVC?
Hmm eine VS-spezifische Funktion zu sein. Warum der Downvote, frage ich mich? – wally
Weder gcc noch clang kompilieren das, also sieht es wie eine VS-Erweiterung aus – bolov
@bolov Würdest du es als Fehler betrachten, dass das '/ Za' Flag ignoriert wird? – wally