gpt4 book ai didi

c++ - 是否可以构造一个带有花括号初始化列表的 boost::circular_buffer?

转载 作者:搜寻专家 更新时间:2023-10-31 01:34:34 30 4
gpt4 key购买 nike

以下编译失败:

auto myCircularBuffer = boost::circular_buffer<int>{1,2,3,4};

有错误:

`error: no matching function for call to ‘boost::circular_buffer<int>::circular_buffer(<brace-enclosed initializer list>)’`

是否有另一种机制来构造带有花括号初始化列表的 boost::circular_buffer 或执行另一种形式的聚合初始化?还是我们必须 push_back 每个元素?

最佳答案

从看the docs , circular_buffer 没有初始化列表重载。一次推送一个项目的唯一真正替代方法是 InputIterator, InputIterator overload .

当然,您可以自由创建自己的函数,使用 InputIterator, InputIterator 重载来让您使用初始化列表:

template<typename T>
boost::circular_buffer<T> make_circular_buffer(const std::initializer_list<T>& init)
{
return boost::circular_buffer<T>(init.begin(), init.end());
}

auto b = make_circular_buffer({1,2,3,4});

关于c++ - 是否可以构造一个带有花括号初始化列表的 boost::circular_buffer?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39229712/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com