使用带或不带初始值设定项列表的默认构造函数作为类数据成员的对象
对于以下程序, #include using namespace std; class university{ private: string uni; public: university(){ cout<<"default constructor of univ…
错误 C2664 无法从“初始化程序列表”转换参数 1;到“A &&” (在 VS2017 上编译,但在 VS2015 上不编译)
我对这段代码有疑问。当我使用 Visual Studio 2017 (v141) 平台工具集时可以编译它。但是,当我切换到 Visual Studio 2015 (v140) 时,出现以下错误:…
初始化列表和赋值重载(运算符=)
赋值运算符的重载是否传播到初始值设定项列表? 例如,假设一个类: class MyClass { private: std::string m_myString; //std::string overloads ope…
在联合内部使用 `initializer_list` 构造函数?
我有一个 POD 结构,但为了方便起见,我希望它有 std::initializer_list 构造函数。默认构造函数、复制构造函数和 dtor 是隐式的。然而,使用 initial…
如果复制列表初始化允许显式构造函数,可能会出现什么问题?
在 C++ 标准 §13.3.1.7 [over.match.list] 中,有以下规定: 在复制列表初始化中,如果选择显式构造函数,则初始化格式错误。 这就是为什么我们不能这…
使数学向量类能够感知初始化列表
我有一个数学向量类,其设计如下: class Vector3D { public: float x; float y; float z; public: Vector3D() {} Vector3D(float xx, float yy, floa…
std::array 初始值设定项列表初始化列表中的初始化
尽管我非常喜欢 C++11 中的新功能,但有时我觉得我错过了它的一些微妙之处。 初始化 int 数组工作正常,初始化 Element2 向量工作正常,但初始化 Elem…
#include <初始化列表>需要在基于范围的 for 中使用初始值设定项列表吗?
最终的 C++11 标准包括基于范围的 for 的规定,以便“仅适用于”本机数组,而无需包含 或任何其他标头。据我所知,这个问题首先在工作文件 n2900 作为…
来自 c++ 的奇怪代码段
阅读其他帖子中的代码,我看到类似的内容。 struct Foo { Foo() : mem(0) {} int mem; }; 在这种情况下,mem(0) {} 会做什么,特别是对于大括号?我以…
是否可以将数据作为initializer_list 传递给std::array 结构?
我有以下代码。基本上我想使用聚合初始化语法初始化非 POD 结构的 std::array 。 g++ 4.6 和 4.7(最新的每周快照)都无法编译代码。 #include struct…
初始化列表作为操作符[]的参数
此问题与此处讨论的问题相关。 我尝试使用初始值设定项列表来创建要传递给 operator[] 的参数。 #include #include struct A { std::string& operator…
无法分配或复制 iostream 对象?
iostream 和其他流类实际上不是类,而是 typedef,对吧? 问题是,我尝试在初始化列表中初始化一个 istream 对象,但不幸的是我收到了一个错误,代码…
我可以列表初始化仅移动类型的向量吗?
如果我通过 GCC 4.7 快照传递以下代码,它会尝试将 unique_ptr 复制到向量中。 #include #include int main() { using move_only = std::unique_ptr; …