auto相关内容

使用 C++11 的“自动"能提高性能吗?

我明白为什么 C++11 中的 auto 类型提高了正确性和可维护性.我读过它也可以提高性能(几乎总是Auto by Herb Sutter),但我错过了一个很好的解释. auto 如何提高性能? 谁能举个例子? 解决方案 auto 可以通过避免静默隐式转换来提高性能.我认为引人注目的一个例子如下. std::map米;//...for (std::pair const& ite ..
发布时间:2021-11-30 18:11:10 C/C++开发

C++ auto 关键字.为什么是魔法?

从我用来学习 C++ 的所有材料中,auto 一直是一个奇怪的存储持续时间说明符,没有任何用途.但就在最近,我遇到了将其用作类型名称的代码.出于好奇,我尝试了它,它假定我碰巧分配给它的任何类型! 突然出现 STL 迭代器,以及任何使用模板的东西,编写起来都容易 10 倍.感觉就像我在使用 Python 这样的“有趣"语言. 这个关键字在我的一生中在哪里?你会说它是 Visual Stu ..
发布时间:2021-11-30 18:10:51 C/C++开发

是否使用“auto"进行声明?匹配使用具体类型说明符的 extern 声明?

考虑以下程序: extern int x;自动 x = 42;int main() { } Clang 3.5 接受(现场演示),GCC 4.9 和 VS2013 不接受(前者的现场演示).谁是对的,C++ 标准中规定的正确行为在哪里? 解决方案 令人惊讶的是,标准中几乎没有这方面的内容.我们听到的关于重新申报的所有信息是: [C++11: 3.1/1]: 声明(第 7 条)可以 ..
发布时间:2021-11-30 18:10:44 C/C++开发

C++ 自动&与自动

创建局部变量时,使用(const) auto&还是auto正确? 例如: SomeClass 对象;const auto result = object.SomeMethod(); 或 const auto&result = object.SomeMethod(); 其中 SomeMethod() 返回一个非原始值 - 可能是另一个用户定义的类型.我的理解是 const auto& ..
发布时间:2021-11-30 18:10:35 C/C++开发

为什么 auto x{3} 会推导出一个 initializer_list?

我喜欢 C++11 中的 auto.太棒了.但它有一个不一致的地方让我很紧张,因为我总是被它绊倒: int i = 3;//i 是一个值为 3 的 intint i = int{3};//i 是一个值为 3 的 int国际我(3);//i 是一个值为 3 的 int(可能缩小,不是在这种情况下)int i{3};//i 是一个值为 3 的 int自动 i = 3;//i 是一个值为 3 的 in ..
发布时间:2021-11-30 18:10:03 C/C++开发

函数标题中的箭头运算符 (->)

我遇到了以下代码: template 自动组合(T a,T1 b)->声明类型(a + b){返回 a+b;} 有一件事我无法理解: 在哪里可以找到函数标题中箭头运算符 (->) 的含义? 我猜纯粹从逻辑上讲,-> 运算符确定了一种类型,auto 将被推导出来,但我想弄清楚这一点.我找不到任何信息. 解决方案 在C++11中,函数声明有两种语法: 返回类型 标识 ..
发布时间:2021-11-30 18:09:52 C/C++开发

什么是 auto&&告诉我们?

如果你读过类似的代码 auto&&var = foo(); 其中 foo 是按 T 类型的值返回的任何函数.那么 var 是对 T 的右值引用类型的左值.但这对 var 意味着什么?这是否意味着,我们可以窃取var的资源?是否有任何合理的情况,您应该使用 auto&& 来告诉代码的读者,就像您返回 unique_ptr 一样告诉您拥有独家所有权?当 T 是类类型时,例如 T&& 怎 ..
发布时间:2021-11-30 18:09:43 C/C++开发

C++17中模板参数中auto的优点

在 C++17 中(可能)引入的模板参数中 auto 的优点是什么? 当我想实例化模板代码时,它只是auto的自然扩展吗? auto v1 = 常量;//v1 == 5, decltype(v1) 是 intauto v2 = 常数;//v2 == true, decltype(v2) 是 boolauto v3 = 常数;//v3 == 'a', decltype(v3) 是字 ..
发布时间:2021-11-30 18:09:33 C/C++开发

泛型 lambda 如何在 C++14 中工作?

泛型 lambda 如何在 C++14 标准中工作(auto 关键字作为参数类型)? 它是否基于 C++ 模板,其中对于每个不同的参数类型,编译器都会生成一个具有相同主体但替换类型的新函数(编译时多态),还是更类似于 Java 的泛型(类型擦除)? 代码示例: auto glambda = [](auto a) { return a;}; 解决方案 泛型 lambda 是在 C+ ..
发布时间:2021-11-30 18:09:22 C/C++开发

尾随返回类型语法样式是否应该成为新 C++11 程序的默认样式?

C++11 支持新的函数语法: auto func_name(int x, int y) ->国际; 目前这个函数将被声明为: int func_name(int x, int y); 新样式似乎还没有被广泛采用(比如在 gcc stl 中) 但是,这种新风格是应该在新的 C++11 程序中处处首选,还是只在需要时使用? 就我个人而言,如果可能的话,我更喜欢旧样式,但混合样式的 ..
发布时间:2021-11-30 18:09:13 C/C++开发

decltype(auto) 有哪些用途?

在 c++14 中引入了 decltype(auto) 习惯用法. 通常它的用途是允许 auto 声明在给定的表达式上使用 decltype 规则. 搜索成语的“好"用法示例,我只能想到以下内容(来自 Scott Meyers),即用于函数的返回类型推导: template//C++14decltype(auto) 抓取(ContainerType&& container, Inde ..
发布时间:2021-11-30 18:08:51 C/C++开发

C ++ 11 auto 关键字太多了?

我一直在 C++11 标准中使用新的 auto 关键字来处理复杂的模板化类型,我相信它就是为此而设计的.但我也将它用于以下方面: auto foo = std::make_shared(); 更怀疑: auto foo = bla();//其中 bla() 返回一个 shared_ptr 我没有看到太多关于这个话题的讨论.似乎 auto 可能被过度使用,因为类型通常是一种文档和完整性检查的 ..
发布时间:2021-11-30 18:08:43 C/C++开发

有没有办法在 C++ 中将 auto 作为参数传递?

有没有办法将 auto 作为参数传递给另一个函数? int 函数(自动数据){//做某事} 解决方案 C++20 允许 auto 作为函数参数类型 此代码在使用 C++20 时有效: int 函数(自动数据){//做某事,对数据没有约束} 作为缩写函数模板. 这是非约束类型约束的特例(即无约束自动参数).使用概念,约束类型约束版本(即约束自动参数)将是例如: void fu ..
发布时间:2021-11-17 05:02:38 C/C++开发

auto 关键字在 Dev C++ 中不起作用

这是我编写的代码,用于查看 auto 关键字如何工作,但它没有在 Dev C++ 中编译,并给出以下警告:[警告] C++11 自动仅适用于 -std=c++11 或 -std=gnu++11如何克服这个故障并按照警告的指示去做? #include#include#include使用命名空间标准;int main(){std::vectorv={2,-1,4,6,7};自动乞讨 = v.begi ..
发布时间:2021-09-17 19:03:08 C/C++开发