C++11老关键字的新含义(auto, using,extern)

http://blog.csdn.net/cnsword/article/details/8034947

公司可以使用c++11.看大牛的代码模仿使用,所以现在已经不知道什么使用的是c++的语法还是c++11的语法了...不知道算不算是一种悲哀

C++11对关键字进行了修订,加入了nullptr、constexpr、decltype、default、static_assert等,同时原有的关键字(auto,using,extern)含义和用途进行了修订。在这里主要了解一下对auto、using、extern这三个关键字的修订。

auto : 

 1 /*自动化变量*/
 2 auto a = 12;
 3 auto b = 12.0f;
 4 auto c = "abc"
 5 auto d = [] (int x)->int{return 12;} //参见c++文章<c++lambda表达式>
 6 auto e = std::bind(&func, _1);//参见c++文章<std::function和std::bind函数指针>
 7
 8 vector<int> s;
 9 s.push_back(1);
10 s.push_back(2);
11 for (auto it = s.begin(); it != s.end(); it++)
12 {
13     cout<<*it<<endl;
14 }
15
16 /*延迟绑定*/   //参见文章 <c++11的decltype>
17 template<typename T, typename L>
18 auto fun( T x, L y)->decltype(x + y){return x;}

using : 

 1 /*定义别名*/
 2 template<class T>
 3 using Tlist = std::list<T>;
 4
 5 using Tlist = std::list<char>;
 6 Tlist listChar;
 7
 8 //typedef void (*df)()
 9 using  df = void(*)();
10
11 /*使用外部构造*/
12 using A::A;
13
14 /*引用外部类型*/
15 using typename A;

extern

1 /*外部模板*/

2 extern template<class T>void(T t);

时间: 2024-10-25 15:25:39

C++11老关键字的新含义(auto, using,extern)的相关文章

从老solr导入新solr

#!/usr/bin/python import solr import re import urllib import pycurl import cStringIO import collections import operator import string import json import pysolr def solr_update(value): pass def function(value): value_1={} keys=value.keys() t1=value[ke

C语言中关键字volatile的含义【转】

本文转载自:http://m.jb51.net/article/37489.htm 本篇文章是对C语言中关键字volatile的含义进行了详细的分析介绍,需要的朋友参考下 volatile 的意思是“易失的,易改变的”.这个限定词的含义是向编译器指明变量的内容可能会由于其他程序的修改而变化.通常在程序中申明了一个变量时,编译器会尽量把它存放在通用寄存器中,例如ebx.当CPU把其值放到ebx中后就不会再关心对应内存中的值.若此时其他程序(例如内核程序或一个中断)修改了内存中它的值,ebx中的值并

C语言void关键字的深刻含义

C语言void关键字的深刻含义 1.概述 本文将对void关键字的深刻含义进行解说,并详述void及void指针类型的使用方法与技巧. 2.void的含义 void的字面意思是“无类型”,void *则为“无类型指针”,void *可以指向任何类型的数据. void几乎只有“注释”和限制程序的作用,因为从来没有人会定义一个void变量,让我们试着来定义: void a; 这行语句编译时会出错,提示“illegal use of type 'void'”.不过,即使void a的编译不会出错,它也

c语言修饰符总结const、static、volatile、auto、extern、register

写在前面 今天下午一个同事问「register」关键字是什么作用?噢,你说的是「register」啊,它的作用是--脑袋突然断片儿,我擦,啥意思来着,这么熟悉的陌生感.做C语言开发时间也不短了,不过好像没有用到过「register」,但作用还是知道的,一下子想不起来了,一万个草泥马飞奔过来. 其实C语言中除了register外,还包含常见的const.static.volatile.auto.extern等修饰符,现在一起再总结一下好了. register 修饰符 register,寄存器变量,

C++新特性-auto关键字

1 auto关键字 在介绍之前,我们先来了解一个新增的关键字auto. 在C++11中,如果编译器能够在变量的声明时,能够推断出其类型:那么,代替之前必须把变量类型放在声明之前的做法,可以直接用auto进行变量的声明: int x = 4; 也就是说,上面的声明语句可以被下面的语句替代: auto x = 4; 当然了,这肯定不是auto关键字设计的根本目的.它最大的作用还是和模板及容器配合使用: vector<int> vec; auto itr = vec.iterator(); // 代

【C++11】新特性——auto的使用

转自 http://blog.csdn.net/huang_xw/article/details/8760403 C++11中引入的auto主要有两种用途:自动类型推断和返回值占位.auto在C++98中的标识临时变量的语义,由于使用极少且多余,在C++11中已被删除.前后两个标准的auto,完全是两个概念. 1. 自动类型推断 auto自动类型推断,用于从初始化表达式中推断出变量的数据类型.通过auto的自动类型推断,可以大大简化我们的编程工作.下面是一些使用auto的例子. [cpp] vi

802.11学习笔记1-WIFI参数含义

研究下wifi参数的含义 #The word of "Default" must not be removed Default CountryRegion=5 CountryRegionABand=7 CountryCode= SSID=Dennis2860AP NetworkType=Infra WirelessMode=9 Channel=0 BeaconPeriod=100 TxPower=100 BGProtection=0 TxPreamble=0 RTSThreshold=

C++ 11的几个新特性

1,range for: alto for (const auto& agent : componentAgents_) {    agent->interface(); } 参见 http://www.cnblogs.com/h46incon/archive/2013/06/02/3113737.html 最新的C++标准更新了auto关键字的功能除了具有原有的含义外,还增加了一种类似其他高级语言的型别推导特性使用auto来代替变量的类型,前提是被明确类型的初始化变量初始化的,可以使用au

C++11的关键字nullptr

nullptr是为了解决原来C++中NULL的二义性问题而引进的一种新的类型,因为NULL实际上代表的是0. 观察如下代码 在C++98中,NULL可以代表0,这样对于如上两个函数来说,就会造成二义性了.那么为了解决这种二义性,在C++11中就引入了一个新的关键字nullptr来代表空指针,并且nullptr本身不能代表零.