问题标签 [initializer-list]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
340 浏览

c++ - 无法从初始化列表中的 lambda 推断类型

上面的示例无法编译(使用 g++ 4.6.1)并出现下一条错误消息:

注释行工作正常(不指定函数类型)。

这是 g++ 的怪癖吗?或者标准中有什么东西告诉上面不应该编译?

0 投票
1 回答
1109 浏览

c++ - C++11初始化列表+函数指针让我头疼

我正在尝试创建一个将字符串映射到工厂函数的全局映射。这使我可以让构建器函数从 ini 文件中读取密钥,然后将该 ini 文件及其相关部分传递给正确的工厂函数。这是带有全局映射的标题中的代码:

这是其中一个工厂类的示例:

所有这些都在编译时给了我一个错误:

以上所有代码都在cg::prim::factory命名空间中,以防万一。两者都Quad继承SpherePrimitive. 我是g++ -O3 -Wall -Wextra -pedantic -std=c++11用来编译的。

为什么这不编译?

0 投票
4 回答
344 浏览

c++ - 为什么成员变量在 c++ 构造函数初始化列表中可见?

由于我的代码中的一个错误,我遇到了这个问题,我很好奇为什么它是允许的。是什么原因允许对象成员在构造函数初始化列表中可见?

Clang 对此给出了警告,但不幸的是 g++ 没有。

0 投票
1 回答
590 浏览

c++ - 在非 pod 结构上使用 operator new + Initializer 列表

我正在尝试在堆上分配包含非 pod 成员的结构并使用初始化列表初始化它们。但是,编译器在我的代码中遇到了错误。这个片段重现了它:

(我知道泄漏,我知道,这只是一个测试片段)

指出的行在 GCC 4.6.3 上无法编译,出现以下错误:

显然编译器无法使用提供的初始化列表初始化我的结构。奇怪的是,产生错误的那一行之后的下一行(据我所知)只是B从使用相同初始化列表构造的另一行复制(可能移动)a,不会产生任何错误。

我做错了什么吗?我的意思是,我可以使用提供的代码段中的最后一行,但是有什么理由不能只使用 operator new 和初始化列表来创建结构吗?

0 投票
1 回答
512 浏览

c++ - 仿函数和初始化器列表的副本

我对复制仿函数和/或初始化程序时会发生什么感到有些困惑。在下面的代码中,我认为我会一直复制/移动对象,但不管它是 Segfaults。我似乎做错了什么,但还没有弄清楚我的错误假设是什么。奇怪的是,在cppreference.com我找不到复制或移动构造函数,initializer_list所以我想知道在这些情况下实际发生了什么。

0 投票
2 回答
2456 浏览

c++ - 在初始化列表中使用 this

假设我有一个Baz从类继承的类,Foo并且Bar按顺序。类的构造函数Bar接受一个指向Foo对象的指针。我想做的是this作为Foo对象传递给Bar构造函数:

一个工作示例:

这恰好可以在我的计算机上使用我的编译器(用其中的几个进行测试)工作。然而,2003 标准的第 9.3.2 节让我有点不安,我可能只是走运了,使用this这种方式是未定义的行为。严格来说,初始化列表在构造函数的主体之外。这是相关的文字,强调我的:

9.3.2this指针
在非静态成员函数的主体this中,关键字是一个非左值表达式,其值是调用该函数的对象的地址。

那么我的使用是否合法且定义明确,还是未定义的行为?

0 投票
3 回答
9154 浏览

c++ - C ++:将引用成员初始化为在初始化列表中创建的对象

考虑以下代码:

按原样编译,我收到错误:

我已经尝试了所有我能想到的变化。我究竟做错了什么?如何将引用成员初始化为新实例?我现在使用 const 指针而不是引用作为解决方法,但我更喜欢使用引用。

0 投票
1 回答
7285 浏览

c++ - 初始化器列表和运算符的 RHS

我不明白为什么不能在运算符的 RHS 上使用初始化列表。考虑:

最新的 Clang(以及 gcc)抱怨:

为什么 C++ 标准会禁止这样做?或者换句话说,为什么这会失败而不是

?

0 投票
1 回答
7600 浏览

c++ - 通过初始化列表调用另一个类的构造函数。有问题

这是我的示例代码:

为什么我得到输出0http://ideone.com/pf47j

另外,一般来说,在另一个类中创建成员对象并调用该对象的构造函数的正确方法是什么,就像上面对class Base, inside的对象基所做的那样class Bar

0 投票
2 回答
1067 浏览

.net - VB.NET 中有没有一种方法可以使用初始化列表将项目添加到成员集合中?

假设我有这个类:

我正在尝试使用初始化列表来初始化属性:

以上不起作用。我在这里有点困惑。现在,在我理解的初始化列表中,我可以像这样初始化集合:

但是我需要做的,因为_l当我说的时候已经指向一个对象New Foo,所以只添加元素而不说..., .l = New List(Of Integer){1}} 。为什么它不起作用?