Joh*_*hnB 2 c++ vector visual-c++ c++11 visual-studio-2015
试图编译以下代码片段
static std::vector<wchar_t> produceStrings(int n) {
std::size_t vsize = 4 * n;
auto v = std::vector<wchar_t>{ vsize };
// ...
}
Run Code Online (Sandbox Code Playgroud)
在VS2015给我错误:
error C2398: Element '1': conversion from 'size_t' to 'wchar_t'
requires a narrowing conversion
Run Code Online (Sandbox Code Playgroud)
替换vby 的定义
std::vector<wchar_t> v(vsize);
Run Code Online (Sandbox Code Playgroud)
但是,有效.vsize用例如10 代替也可以.
为什么?
编辑:我正在编译32位.
std::vector<wchar_t>{ vsize };尝试创建一个仅包含元素的向量,该元素vsize执行转换size_t为wchar_t.
std::vector<wchar_t>(vsize);构造一个vsize保留元素的向量,这非常好.
| 归档时间: |
|
| 查看次数: |
493 次 |
| 最近记录: |