问题标签 [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.
c++ - 在 C++11 中用“auto”推导时 lambda 的类型是什么?
我有一种感觉,lambda 的类型是函数指针。当我执行以下测试时,我发现它是错误的(演示)。
上面的代码是否缺少任何要点?如果不是,那么用关键字typeof
推导时的 lambda 表达式是什么?auto
c++ - `auto` 以前是做什么用的?
我知道在 C++11 之前,auto
关键字的含义完全不同;它是一个存储类型说明符,指示具有自动存储类型(即放置在堆栈上)的对象。
理论就是这样......你将如何实际使用这个关键字(语法),为什么?此外,我还没有在 C++11 之前的实际代码中看到这个关键字;什么时候有用(什么时间段)?
c++ - C ++ 11自动类型危险吗?
在 C++11 中,键入一个变量auto
而不是int
, 将使编译器自动使用正确的类型,从其初始化上下文中推断出来。这在类型很明显但写起来很无聊的情况下非常方便。是否有需要注意的陷阱,或者有人会避免使用它的原因?
c++ - 来自 const std::vector<>& 的自动;对象还是参考?
假设我们有一个具有以下接口的对象:
auto
现在,我使用如下变量访问该属性:
是什么类型的childs
?一个std::vector< something >
或一个参考?
c++ - 将 auto 关键字替换为推导类型(clang 或 VS2010)
有没有人写过一个脚本、插件或可执行文件,用编译器推断的类型替换“auto”的每个实例?我需要移植一些到处使用 auto 的 C++11 代码。
Clang 是我的第一个候选人。有没有人修改它来做这样的事情?
另一种方法是从编译器解析错误,因为预期的类型可能在错误输出中。我可以-Dauto=int
而且可能会回来"could not convert std::vector<int>::iterator to 'int'"
c++ - 自动和常量对象
在上面的代码中,为什么编译器将v
的类型推断为shared_ptr<int>
而不是const shared_ptr<const int>
getField 返回的类型?
编辑: MSVC2010
c++ - 缺少结构定义时自动不起作用
当缺少结构定义时,我有点困惑auto在gcc中不起作用。例如:
在第 4 行,编译器抱怨它无法确定var是什么。既然宣布了测试,我认为它应该是小菜一碟。我是否遗漏了什么或者这是 gcc 实现中的错误?
编辑:
对不起这是我的错。工具链使用的是古老/有缺陷的 gcc 4.4。强制它使用 4.6 它就像一个魅力。
c++ - Wunused-but-set-variable warning with C++11 auto
我收到了 GCC v4.6 的 -Wunused-but-set-variable 警告,代码如下:
警告具体是:
i
如果是元素的副本,则警告将有意义,但由于vertexIndices
是QList
对象(符合 STL 的 Qt 容器类),基于范围的 for 循环应调用 begin() 和 end() 迭代器 getter,它将始终返回一个非常量迭代器(只要容器是非常量的 - 它就是)。
我目前无法测试它是否按我认为的那样工作,因为我正在更改我的代码库以利用新的 C++11 功能,所以还没有编译。但我希望有人能告诉我这个警告是否是无稽之谈,或者我是否误解了自动和基于范围的 for 循环......
c++ - auto&& 是做什么的?
这是 Scott Meyers 的 C++11 Notes Sample 的代码,
我很难理解auto&&
。
我对 有一些了解auto
,从中我会说auto& a1 = x
应该使 type of a1
asint&
引用代码中的哪个似乎是错误的。
我写了这个小代码,并在 gcc 下运行。
输出 =4 (newline) 5
然后我将第 8 行修改为auto&& a1 = x;
,然后运行。相同的输出。
我的问题:auto&
等于auto&&
?
如果它们不同,会auto&&
做什么?
c++ - Boost Spirit Auto Parser 因双打元组而失败
在下面的代码中,我尝试将Boost Spirit Auto Parser用于一个序列或两个双打,但它无法编译。我在这里做错了什么?
被注释掉的行编译,所以它接受boost::tuple<double, double>
作为 ; 的属性类型qi::double_ >> qi::double_
。但它无法从属性类型中获取解析器。为什么?