接受迭代器的初始化列表构造函数

Initializer list constructor accepting iterators

MSVC 上的以下 compiles

#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?
}

我用这个行为来回答 , but while doing some research I found that this constructor is not actually in the standard

我用 /Za/permissive- 标志关闭了语言扩展,但它仍然可以编译。

这是 MSVC 中的错误吗?

它实际上记录在 MSDN:

constexpr initializer_list() noexcept;

initializer_list(const InputIterator First, const InputIterator Last);

但这似乎是 VS 特有的功能