当前位置:  开发笔记 > 编程语言 > 正文

从size_t转换为wchar_t需要缩小转换

如何解决《从size_t转换为wchar_t需要缩小转换》经验,为你挑选了1个好方法。

试图编译以下代码片段

static std::vector produceStrings(int n) {
   std::size_t vsize = 4 * n;
   auto v = std::vector{ vsize };
   // ...
}

在VS2015给我错误:

error C2398: Element '1': conversion from 'size_t' to 'wchar_t'
requires a narrowing conversion

替换vby 的定义

std::vector v(vsize);

但是,有效.vsize用例如10 代替也可以.

为什么?

编辑:我正在编译32位.



1> Michael Oliv..:

std::vector{ vsize };尝试创建一个仅包含元素的向量,该元素vsize执行转换size_twchar_t.

std::vector(vsize);构造一个vsize保留元素的向量,这非常好.


它不是聚合初始化,因为向量不是聚合.它是列表初始化,通常禁止缩小,并包括聚合初始化.
推荐阅读
N个小灰流_701
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有