c++ - 是否可以以编程方式构造 std::initializer_list?

标签 c++ initializer-list

我正在包装一个 C++ fn 的形式

foo(input, std::initializer_list<Option> options);

我需要从另一种格式的数据构建一个选项列表,并将它们传递给 fooI can't see一种以编程方式构建 std::initializer_list 的方法——对吗? (如果被迫使用更标准的容器是有道理的,但我想在重构之前进行检查。)

最佳答案

在标准 C++ 中是没有办法的。 std::initializer_list 是一种语言支持类型。它的存在使我们可以使用语言构造(列表初始化)。

因此,只有实现才能创建它们,并且只有在进行列表初始化时才需要实现。您的实现可能会提供允许创建它们的扩展,但这不太可能产生标准代码。

关于c++ - 是否可以以编程方式构造 std::initializer_list?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52183608/

相关文章:

c++ - 如何将包含 C++ 文件的文件夹添加到 NetBeans 项目?

c++ - 是否可以哄 std::atomic<T> 输出 CMPXCHG16B

C++/Arduino 将函数作为参数传递

c++ - Unordered_map 到二进制文件

c++ - std::make_unique(以及 emplace、emplace_back)对 initializer_list 参数的笨拙推导

c++ - 两百万以下的素数之和。埃拉托色尼筛法

c++ - 替代初始化唯一指针的 vector

c++ - constexpr C++容器–一种将push_back推回到initializer_list或类似方法的方法

c++ - 使用初始化列表作为函数参数实现 operator[] 的类对象示例

c++ - 初始化每个类成员时出现性能问题?