问题标签 [auto]

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 投票
1 回答
703 浏览

c++ - 自动生成的班级成员?

创建类时,我知道如果您不指定它们,它们会自动生成 3 个构造函数/析构函数。operator=也是自动创建的。

operator==或任何其他比较运算符是自动生成的吗?是否创建了任何其他成员或成员函数?this指针呢?

0 投票
8 回答
28038 浏览

c++ - 如何使用 auto 获得 const_iterator?

第一个问题:是否可以“强制”const_iterator使用汽车?例如:

我只想查询,而不是更改 指向的任何内容city_it,所以我想必须city_itmap<int>::const_iterator. 但是通过使用 auto,city_it与 的返回类型相同map::find(),即map<int>::iterator. 有什么建议吗?

0 投票
0 回答
113 浏览

c++ - 我们可以在 C++11 中将 auto 与类成员初始化器一起使用吗?

在 C++ 中,我们有类成员初始化器,但我似乎无法对非静态成员使用自动/静态类型推导。

那行不通(至少在clang上:Apple LLVM 4.2版(clang-425.0.24))。

这只是一个编译器错误,还是标准不要求支持它(如果是,为什么不支持)?

0 投票
0 回答
312 浏览

c++ - When is it appropriate to use 'auto' in C++?

I'm struggling to come up with some consistent rules for myself for when to use 'auto' in a C++ program. Here are my pro/con lists, perhaps you can help me by giving me your input.

Pro:

  • 'auto' is good for avoiding complex and large template declarations (e.g. the classic use case of auto to define the iteration variable over an STL container)

  • 'auto' is good for future-proofing code. For example, if I have an array of ints and I want to change it to unsigned ints, if I've used 'auto' when I refer to elements of that array, things will automatically update. Of course, that would also have occurred had I used a typedef for the array.

Cons:

  • 'auto' makes it hard to read code. I have no idea if the declaration is a pointer or value. I have no idea if it might have a constructor and destructor.

  • 'auto' makes me lazy. I can forget about the types and just write code. But in C++, the types are very important to the semantics of the program.

When does you guys use Auto? and when do you prefer not to use it?

0 投票
1 回答
495 浏览

c++ - Visual Studio vs G++ 中的 Decltype 和友元函数

我正在编写一些 C++ 代码来做向量数学。它只是一个围绕std::array实例的薄包装器是必不可少的。我想重载非成员begin()函数以将迭代器返回到后备数组的开头。为此,我编写了一个简单的友元函数,它有一个auto返回类型和一个尾随返回类型,使用decltype它只是将调用转发到成员变量。

它不会编译,我不知道为什么。我开始摆弄一个较小的示例,发现以下代码在 G++ 4.7 下编译,但在最新的 Visual Studio 2012 Professional 下编译不了。

奇怪的是,如果私有声明eltsbegin()函数声明之前,则此代码仅在 G++ 中编译。

无论如何,哪个编译器就在这里?Visual Studio 还是 G++?

编辑:VS2012给出的编译错误是error C2228: left of '.elts' must have class/struct/union

0 投票
4 回答
10372 浏览

c++ - 在 C++ 中使用 auto 的最简单的例子是什么?

我试图了解如何auto在 C++ 中使用。对我来说,理解某事的最好方法是看一个例子。但是,我看到的例子并不是那么简单。例如这里是“ C++0x auto 关键字的含义,例如? ”。要理解这个例子,我需要知道什么是“模板”、“指针”、“malloc”等等。

请任何人都可以举一个使用 auto 的简约示例,以便人们可以轻松理解它的用途?

0 投票
1 回答
143 浏览

c++ - 获取成员函数的地址而不通过具体名称引用实例的类?

现在我们有了auto关键字,我希望能够获取类实例成员的地址,而不必静态引用它的类。

例如(老派)

c++11 使用自动???

但是,&foo.memfun 无法编译。对此的语法/规范方法是什么?如果可以避免的话,我们当然不想引用具体类型的 foo ,否则auto似乎确实是弱酱,不是吗?

0 投票
1 回答
260 浏览

c++ - C++11:私有成员安全

让我们考虑下一个代码:

编译器(gcc 4.7.2)大喊说这A::B是私有的。好的。所以,我改变了代码:

它不会大喊:

意思是,我不能创建 的实例A::B,但我可以使用它。所以,新的变化(我问题的关键)。

并输出:

这里有什么问题,是A::B私有的(以及它的构造函数、复制构造函数等等)?

0 投票
3 回答
413 浏览

c++ - 使用 auto 对函子进行类型推导

我对 C++11 特性比较陌生。我对自动功能以及它如何类型推导函子有疑问。考虑以下代码片段:

虽然 auto (和 std::function )适用于函数,但它对于函数对象失败(类型推断)。为什么是这样?我在这里遗漏了一些基本的 wrt 类型推断。

(我正在使用 Visual Studio 2012)

0 投票
1 回答
185 浏览

c++ - foreach(int i.. 和 foreach(auto i) 之间的区别

我正在 Mac OX (LLVM 4.2) 附带的 Clang 编译器上试验 C++11 功能,以下结果让我感到困惑:

在运行环境中,我得到不同的输出,如下所示:

为什么我会得到不同的结果?