问题标签 [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 投票
2 回答
1166 浏览

c++ - 为什么 auto 的旧用法(c++03)不能在 C++11 下编译?

我知道它auto之前有一点用法,因为它是变量的默认值(与静态相反) - 请参阅问题 考虑有效的 C++03 代码,其中可能为了不言自明,使用了这个关键字:

它在 C++03 下编译,在 C++11 下不编译。是否有任何理由不与 C++03 向后兼容?没有使用这个关键词的标准委员会意见的来源是什么?有关键字使用的统计数据吗?

顺便说一句,我用 gcc 测试过——也许这是一个编译器错误?

0 投票
2 回答
1543 浏览

c++ - 使用 auto 作为模板参数

我正在尝试使用带有-std=c++11标志集的 GCC 4.7.1 编译以下内容:

我正在尝试创建一个对象以包含大量各种类型的 Json 数据(int string、bool)以及子结构(list、map),因此我无法在编译时声明字段值的类型时间,所以我想我会使用auto关键字。

但是,当我尝试编译它时,我得到以下

有没有一种特殊的方法可以auto用作模板参数,还是不可能?

0 投票
3 回答
696 浏览

c++ - 为什么我不能使用带有 auto 的大括号初始化一个值并将其传递给这个函数

为什么我不能用 auto 初始化一个值并将其传递给一个需要 decltype 作为参数的函数?

让我设置场景,给你看一个小程序。


这是一个返回值的函数。

在这种情况下,它恰好是一个整数,但返回类型可能会发生变化。
这就是为什么下一个函数编写如下:

如果有人决定改变 Function 的返回类型,那么这个函数的减速就不需要改变了。是的,函数的定义可能无法正确处理新类型,或者如果函数的返回类型更改为 void 会有问题,但这与我的问题无关。

那么为什么 var4 是 initializer_list 而不是 int 呢?
不能 auto 只是推断 Function 将返回一个 int,
然后将减速更改为类似于 var3 的减速吗?

0 投票
2 回答
3232 浏览

c++ - C++11 segfault 中基于范围的 for 循环,但不是常规 for 循环

为什么第二个循环有段错误,而第一个循环没有?

0 投票
3 回答
44227 浏览

c++ - c++11中指针的'auto'类型分配是否需要'*'?

鉴于我的变量是一个指针,如果我将它分配给“自动”类型的变量,我是否指定“*”?

我对它auto在 c++11 中的工作方式有点困惑(这是 c++11 的一个新特性,对吧?)

更新:我修改了上面的内容以更好地阐明我的向量是如何真正填充到函数中的,我只是试图将返回的指针分配给一个变量。对困惑感到抱歉

0 投票
1 回答
186 浏览

c++ - 带元编程的自动 + 静态类内常量初始化

考虑以下简化的模板元编程代码,该代码实现了一个Angle在内部存储模 360 度缩减值的类。

Ideone上输出

使用 Visual C++ 2010 Express,我可以做到static auto const = Modulus<N, 360>::value,但使用 MinGW gcc 4.7.2( Nuwen发行版)或 Ideone(gcc 4.5.1)我必须明确将类型表示为,static int const value = Modulus<N, 360>::value或者我必须使用auto完整的模块化表达式 as static auto const value = N % 360;

问题:根据新的 C++11 标准,哪个编译器是正确的?

0 投票
2 回答
138 浏览

c++ - 在块执行之前和之后执行一些指令

我需要一种语法,它允许我在之前初始化一些变量的情况下启动一个代码块,并且在执行代码块之后,我需要执行一些代码来释放一些其他变量。
因此,块内编写的代码应该在其他一些操作的中间执行。

这是我得到的:

您看到的代码只是初始化了一个应用程序(一个 C++ 对象),所以我这样使用它:

这样我可以确定应用程序总是被初始化,并在块之后启动。
但我想知道是否有办法避开圆括号,这样我就可以这样写:

这种方式也有效,但它应该使语法更轻。

0 投票
1 回答
187 浏览

c++ - 有没有办法保存自动变量并在之后使用它?

我正在尝试保存一段代码并在之后使用它。所以我将能够将自动变量声明为全局,分配它然后调用该块:

然后:

但问题是我得到一个语法错误:似乎我必须在声明它的那一刻初始化变量,所以我无法记住该块并在之后使用它。我需要将该块作为全局变量记忆或在一个类中。也在一个类中,我不允许将自动声明为实例变量。有没有办法?

0 投票
3 回答
520 浏览

c++ - 自动编译器问题?错误:在声明器列表中,“auto”必须始终推断为相同的类型

错误:在声明器列表中,“auto”必须始终推断为相同的类型

0 投票
2 回答
1395 浏览

c++ - 从函数返回 shared_ptr

我对 C++11 很陌生,'仍然在尝试扩展。我发现auto关键字非常方便,尤其是在处理模板变量时。这意味着给定

我现在可以做任务了

代替

现在的问题是,因为t1是一个指针,我想shared_ptr按照 Herb Sutter 的建议将它保存在一个指针中。因此,我想将 的返回值存储create()在 ashared_ptr而不必命名模板参数类型,如t2.