auto相关内容

多种转换功能作为“操作员自动"在班上

在下面的代码中 struct S {运算符自动(){ 返回 42;}}; operator auto 等价于 operator int 因为实际类型是从文字 42 推导出来的,该类型是 int.如果我写 42.5 而不是 42 那么 operator auto 将被解释为 operator double 显而易见的原因.但是当我同时使用两者时,所有三个主要编译器(gcc、clang、msvc) ..
发布时间:2021-09-11 19:40:54 C/C++开发

使用auto return' type'进行显式模板专业化是否有效?在C ++ 14中?

上一个问题. 我重复上一个问题的代码,以使该问题独立.下面的代码如果使用gcc 4.8.3进行编译,则不会编译并发出任何警告.与 -std = c ++ 1y 一起使用.但是,如果使用 -std = c ++ 0x 标志进行编译,则确实会发出警告.在上一个问题的上下文中,有人指出该代码无法使用gcc 4.9.0进行编译.不幸的是,目前我还不完全了解 auto 的实现方式.因此,如果有人可以回 ..
发布时间:2021-04-20 18:38:46 C/C++开发

如何在c ++ 17中定义函数组成?

我想计算函数的组成-f(g(param)).这是我尝试过的: auto fComposition(auto& f,auto& g,auto&& ... params){/*一些东西*/自动结果= std :: forward(f)(std :: forward(g)(std :: forward(pa ..
发布时间:2021-04-12 20:11:06 C/C++开发

函数声明符(有时/总是?)是函数声明符吗?

(此问题已从对此答案的讨论中分解出来,其中突出显示 CWG 1892 ) 该标准的某些段落将特定规则应用于功能声明符;例如 [dcl.spec.auto]/3 关于占位符类型[强调我的]: 占位符类型可以与函数声明符一起出现在 decl-specifier-seq , type-specifier-seq ,中在此类声明符有效的任何情况下,conversion-function-id ..
发布时间:2021-04-12 20:11:00 C/C++开发

为什么不能使用带有花括号的auto初始化值并将其传递给此函数

为什么不能使用auto初始化值并将其传递给需要decltype作为参数的函数? 让我设置场景,并向您展示一个小程序. 这是一个返回值的函数. int Function(void); 在这种情况下,它恰好是整数,但是返回类型可能会发生变化. 这就是为什么下一个函数编写如下: void What_I_Take_Depends_On_Function(decltype(Fu ..
发布时间:2020-09-14 04:39:33 C/C++开发

decltype和auto之间的等价关系

由于auto和decltype都用于推断类型.我想 他们会是一样的. 但是,对于此问题的答案则相反. 我仍然认为它们不可能完全不同. 我可以想到一个简单的示例,其中在以下两种情况下i的类型将相同. auto i = 10; and decltype(10) i = 10; 那么auto和decltype表现相同的可能情况是什么? 解决方案 auto的行为完全与模板参数 ..
发布时间:2020-09-14 04:38:31 C/C++开发

CV-自动变量的限定词

我在此处找到了以下“规则": [...]仅当const和volatile限定词位于最外面的引用的顶部或正下方时,才会自动删除它们. [...] 我了解顶级cv限定词是对变量本身的描述(与对变量所指向或引用的描述相比).但是,什么是简历限定词“位于最外层参考的正下方",为什么会自动删除它(可能第一个问题也回答了第二个)? 解决方案 " cv 最外层引用的正下方"表示该引用是对 c ..
发布时间:2020-09-14 04:37:28 C/C++开发

自动初始化列表的类型

在下面的C ++代码中,a的类型是什么? typeid返回St16initializer_listIPKcE auto a = { "lol", "life" }; 解决方案 有空时 auto a = { "lol", "life" }; 编译器将尝试推导std::initializer_list,其中类型是所有元素的含义.在这种情况下,"lol"和"life"都是const ..
发布时间:2020-09-14 04:36:25 C/C++开发

对可以传递给自动模板参数的内容有限制吗?

在使用模板功能: template void foo() 我可以作为模板参数传递的内容似乎受到限制.例如,从我的链接问题中可以看出,我似乎无法传递函子: foo{}>() 是否存在允许和不允许的清单? 解决方案 在C ++ 17中,可以在 非类型模板参数应具有以下类型之一(可选的cv限定): 整数或枚举类型 指向对象的指针 ..
发布时间:2020-09-14 04:35:15 C/C++开发