居然还有这样使用的auto

今天学习了一下keyword,无意中发现了自己一直未曾接触到的auto

好吧,我又开始胡扯了!

automatic storage duration. (deprecated)
1) When declaring variables in block scope, in namespace scope, in init statements of for loops, etc, the type of the variable may be omitted and the keyword auto may be used instead. Once the type of the initializer has been determined, the compiler determines the type that will replace the keyword auto as if using the rules for template argument deduction from a function call. The keyword auto may be accompanied by modifies, such as const or &, which will participate in the type deduction. For example, given const auto& i = expr;, the type if i is exactly the type of the argument u in an imaginary template template<class U> void f(const U& u) if the function call f(expr) was compiled.
2) In a function declaration, the keyword auto does not perform automatic type detection. It only serves as a part of the trailing return type
syntax. (未曾发现这点)

1.大体意思讲解了auto的使用方式(除了函数),

2.(大学四年四级未过,今年我不考了)大体意思(在函数声明中,auto关键字不能用作函数返回的类型,它仅仅能够作为返回细节符号的一部分。。。)

 1 #include <iostream>
 2 #include <cmath>
 3 #include <typeinfo>
 4 template<class T,class U>
 5 auto add(T t,U u)->decltype(t+u)//一种符号的一部分,这样理解不会错把。。
 6 {
 7     return t+u;
 8 }
 9 //来个变态的
10 auto get_fun(int argc)->double(*)(double)//返回一种函数,这种函数double x(double),因为要地址,所以使用*
11 {
12     switch (argc) {
13     case 1:
14         return std::fabs;
15     case 2:
16         return std::sin;
17     default:
18        return std::cos;
19     }
20 }
21 int main()
22 {
23     auto a=add(1,2.54);
24     std::cout<<typeid(a).name()<<std::endl;
25     auto b=add(‘1‘,‘A‘);
26     std::cout<<typeid(b).name()<<std::endl;
27
28     auto p=get_fun(2);
29     std::cout<<p(3.14)<<std::endl;//cos(3.14)
30 }
31 //output
32 /**
33 d----------->double
34 i------------>int(转换为int了)
35 0.00159265---------->==0
36 */

本文参考:http://tool.oschina.net/apidocs/apidoc?api=cpp%2Fen%2Fcpp.html(auto)

时间: 2024-10-31 23:31:31

居然还有这样使用的auto的相关文章

深入理解Auto Layout 第一弹

本文转载至 http://zhangbuhuai.com/2015/07/16/beginning-auto-layout-part-1/ By 张不坏 2015-07-16 更新日期:2015-07-17 文章目录 1. 写在前面 2. iOS布局机制 3. 几个重要的API 3.1. intrinsicContentSize方法 3.2. preferredMaxLayoutWidth属性 3.3. sizeThatFits:方法和sizeToFit方法 3.4. systemLayoutS

auto类型推导

引言 auto : 类型推导. 在使用c++的时候会经常使用, 就像在考虑STL时迭代器类型, 写模板的时候使用auto能少写代码, 也能帮助我们避免一些隐患的细节. auto初始化 使用auto型别推导要求必须在定义时初始化, 毕竟需要根据对象的类型推导左值对象的型别. auto j; // error. 必须初始化 auto i = 0; // i 推导型别为 int vector<int> v; auto vv = v.cbegin(); // vv 推导型别为 const int* 但

auto printer 自动打字机效果

前段时间在知乎上看到了一个打字机的效果,所以,心血来潮,自己也来写了一个打字机的效果. 比较简单,但还有待优化的地方,因为自己感觉这个效果不够炫,等哪天想出好的点子了.再来更新…… 代码效果预览地址:http://code.w3ctech.com/detail/2525 html: 1 <div class="container"> 2 <div id="title"><h3>我喜欢出发--汪国真</h3></d

Applying GI PSU &quot;opatch auto&quot; fails with &quot;The opatch Component check failed&quot;

Applying GI PSU using "opatch auto" fails with "The opatch Component check failed" (文档 ID 1169036.1) APPLIES TO: Oracle Database - Enterprise Edition - Version 11.2.0.3 and laterInformation in this document applies to any platform.***C

Android:刚6瓶啤酒4两56度白酒下肚,居然20分钟做了一手机版网站 !

刚6瓶啤酒4两56度白酒下肚,居然20分钟不到时间做了一手机版网站 !人有多大潜力你知道吗? 大家有兴趣的可以用手机或微信打开 http://xh.yunxunmi.com/ 看看俺这酒后之做! 更多0

微创居然被唐骏买了,顺便挖挖里面的内部

前几天忽然在微信群里发现以前的微创同事发来的消息,唐骏回微创了,消失了好久的之前不是去新华都了么,怎么又回来了,难道是混不下去了么?然后发现不是回微创而是控股微创了,尼玛一个微创技术经理是怎么控股微创的呢,微创不是闵行区政府和微软控股的么?作为前微软和前微创员工,不得不好奇的挖掘了下事情的起因经过结果. 11月11日,天宸股份公告称,公司将出资5160万元获得上海骏惟企业管理咨询有限公司 (以下简称上海骏惟)43%的股权.今日,公司宣布上述增资及工商变更手续已全部完成.增资后,公司持有上海骏惟4

SQL AUTO INCREMENT 字段

Auto-increment 会在新记录插入表中时生成一个唯一的数字. AUTO INCREMENT 字段 我们通常希望在每次插入新记录时,自动地创建主键字段的值. 我们可以在表中创建一个 auto-increment 字段. 用于 MySQL 的语法 下列 SQL 语句把 "Persons" 表中的 "P_Id" 列定义为 auto-increment 主键: CREATE TABLE Persons ( P_Id int NOT NULL AUTO_INCREM

19. AUTO INCREMENT 字段

Auto-increment 会在新记录插入表中时生成一个唯一的数字. AUTO INCREMENT 字段 我们通常希望在每次插入新记录时,自动地创建主键字段的值. 我们可以在表中创建一个 auto-increment 字段. 用于 MySQL 的语法 下列 SQL 语句把 "Persons" 表中的 "P_Id" 列定义为 auto-increment 主键: CREATE TABLE Persons ( P_Id int NOT NULL AUTO_INCREM

overflow:auto/hidden的应用

一.自适应两栏布局 <!DOCTYPE html><html lang="zh-CN"><head> <meta charset="UTF-8"> <title>自适应两栏布局</title> <style> body { width: 300px; position: relative; } .aside { width: 100px; height: 150px; float: