如何将C数组转换为std :: initializer_list?

Иго*_*чев 1 c++ gcc visual-c++

我知道一个指向数组及其大小的指针。可以从中创建什么容器?我试图这样做:

std::initializer_list<int> foo(arr, arr + size);
Run Code Online (Sandbox Code Playgroud)

它适用于MSVC,但不适用于gcc

Ded*_*tor 5

std::initializer_list是一种引用类型,仅用于支持列表初始化,并且仅具有default-ctor和隐式copy-ctor。其他任何ctor都是扩展。

您可以做的是直接从迭代器范围初始化目标容器,而无需涉及任何中间视图。

除非您更了解,否则将使用标准容器std::vector。还是使用一个简单的视图std::span就足够了?