相关疑难解决方法(0)

什么是Curly-Brace附上列表如果不是intializer_list?

我在这里问了一个问题:涉及非功能代码的initializer_list返回的生命周期扩展:

const auto foo = [](const auto& a, const auto& b, const auto& c) { return {a, b, c}; };
Run Code Online (Sandbox Code Playgroud)

我相信lambda试图回归intializer_list(这很糟糕,不要这样做.)但我得到了一个评论:

它不是一个initializer_list,它是一个初始化列表.两件不同的事情.

我只是认为,无论何时你做了一个花括号列表,你都在创建一个intializer_list.如果那不是正在发生的事情,花括号中的列表是什么?

c++ initialization initializer curly-braces initializer-list

31
推荐指数
3
解决办法
1349
查看次数

使用列表初始化(花括号)分配矢量大小

我怎样才能做到平等:

#include <vector>

size_t bufferSize = 1024 * 1024;
std::vector<unsigned char> buffer(bufferSize, ' ');
Run Code Online (Sandbox Code Playgroud)

使用列表(花括号)初始化?

当我尝试执行以下操作时:

#include <vector>

size_t bufferSize = 1024 * 1024;
std::vector<unsigned char> buffer {bufferSize, ' '};
Run Code Online (Sandbox Code Playgroud)

它错误地解释bufferSize为要存储在容器的第一个索引中的值(即调用错误的std::vector构造函数),并且由于从unsigned int(size_t)到()的转换无效而无法编译unsigned char.

c++ c++11 list-initialization

11
推荐指数
2
解决办法
630
查看次数