c++11
文章平均质量分 63
sword_zjcj
这个作者很懒,什么都没留下…
展开
-
C++11新特性
C++11标准发布已有一段时间了, 维基百科上有对C++11新标准的变化和C++11新特性介绍的文章. 我是一名C++程序员,非常想了解一下C++11. 英文版的维基百科看起来非常费劲,而中文版维基百科不是知道是台湾还是香港人翻译的然后由工具转换成简体中文的,有些术语和语言习惯和大陆程序不一样! 我决定结合这两个版本按照我自己的习惯把这篇文章整理到我的博客中.分享给关注我和关注C++11的朋友们.转载 2015-01-13 13:19:57 · 529 阅读 · 0 评论 -
Visual Studio, GCC, Clang, Intel 对 C++11 特性的支持一览表
距离我上次对C++11支持的不同编译器的比较已经有大半年了。这次我来根据这些预览版的编译器的文档来看下它们是如何堆砌起来的。GCC的下个版本是4.8,以及Clang即将到来的版本是3.3 。如果你使用Visual Studio 2012,你可以安装2012年11月更新支持C++11额外特征的体验版CTP。 我也对V.13.0的Inte转载 2015-02-05 15:55:26 · 1002 阅读 · 0 评论 -
【c++11】override(重写)与final(最终)
#include "stdafx.h"#include // 标示符含义:// override,表示此虚函数必定“重写”了基类中的对应虚函数。// final,表示此虚函数已处在“最终”状态,后代类必定不能重写这个虚函数。// 编译器将帮你检查是否“必定”class B{public:// virtual void func() override // error! 指定原创 2015-01-13 18:22:26 · 11633 阅读 · 1 评论 -
【c++11】 decltype
主要是为泛型编程而设计,以解决泛型编程中,由于有些类型由模板参数决定,而难以(甚至不可能)表示之的问题。正如sizeof操作符一样,decltype亦不需对操作数求值规则:若表达式e指向一个普通变量或函数参数,那么返回类型即为该变量(或参数)的“声明类型”;若e是一个左值,则decltype(e)将返回T&,其中T为e的类型;若e是一个右值引用,则返回值为T&&;若e是一个原创 2015-01-13 17:02:15 · 597 阅读 · 0 评论 -
【C++11】nullptr
1. 引入nullptr的原因引入nullptr的原因,这个要从NULL说起。对于C和C++程序员来说,一定不会对NULL感到陌生。但是C和C++中的NULL却不等价。NULL表示指针不指向任何对象,但是问题在于,NULL不是关键字,而只是一个宏定义(macro)。1.1 NULL在C中的定义在C中,习惯将NULL定义为void*指针值0:[cpp] view plai转载 2015-01-13 16:36:23 · 825 阅读 · 0 评论 -
【c++11】范围for循环
参考:http://blog.csdn.net/aspnet_lyc/article/details/30971195#include #include #include #include #include #include using namespace std;struct Test{ int i; int j;};int main(){ map ms转载 2015-01-13 18:43:39 · 480 阅读 · 0 评论 -
【c++11】static_assert: 静态断言 type traits:类型特征
static_assert提供一个编译时的断言检查1、static_assert与assert的不同: assert(表达式):运行时断言,表达式为false,在运行时打印固定的错误信息,并终止程序。 static_assert(表达式,“想让编译器显示的出错信息”):编译时断言,表达式为false,在编译时显示给定的出错信息。 表达式为true,两者都不做任何事原创 2015-01-13 17:46:47 · 2439 阅读 · 1 评论 -
【c++11】变长参数模板
转载自http://blog.csdn.net/aspnet_lyc/article/details/30980965[cpp] view plaincopyprint?template typename ... ARGS> void fun(ARGS ... args) 首先明确几个概念1,模板参数包(template paramete转载 2015-01-13 18:49:58 · 2197 阅读 · 0 评论 -
【c++11】tuple
参考:http://blog.csdn.net/aspnet_lyc/article/details/30980465我们在C++中都用过pair.pair是一种模板类型,其中包含两个数据值,两个数据的类型可以不同.pair可以使用make_pair构造[cpp] view plaincopyprint?pairint, string> p = make_pai转载 2015-01-13 18:32:09 · 1011 阅读 · 0 评论 -
【c++11】非成员begin() 、end()
#include #include #include int _tmain(int argc, _TCHAR* argv[]){ // 非成员begin()\end()使数组的使用变得像std容器一般,再也不用繁琐地求数组长度了 // 调用方式:std::begin(数组名)、std::end(数组名) // 返回值分别标示了数组的开始以及越界位置的“迭代器” int a[] =原创 2015-01-13 17:29:26 · 3554 阅读 · 0 评论 -
【c++11】Lambda表达式
转载自http://blog.csdn.net/aspnet_lyc/article/details/30972863lambda表达式可以用于创建并定义匿名的函数对象,以简化编程工作Lambda的语法如下:[函数对象参数](操作符重载函数参数)->返回值类型{函数体}[]内的参数指的是Lambda表达式可以取得的变量。(2)函数中的param就是指函数可以得到在Lam转载 2015-01-13 18:47:42 · 520 阅读 · 0 评论 -
【c++11】 auto
C++11中引入的auto主要有两种用途:自动类型推断和返回值占位。auto在C++98中的标识临时变量的语义,由于使用极少且多余,在C++11中已被删除。前后两个标准的auto,完全是两个概念。1. 自动类型推断 auto自动类型推断,用于从初始化表达式中推断出变量的数据类型。通过auto的自动类型推断,可以大大简化我们的编程工作。下面是一些使用auto的例子。[cpp转载 2015-01-13 16:42:44 · 468 阅读 · 0 评论 -
【c++11】 enum class: 强类型枚举
#include int _tmain(int argc, _TCHAR* argv[]){ { enum Numbers {One, Two, Three}; // enum Options {None, One, All}; // error! 名字冲突:"One"重定义// int i = One; } // 普通枚举常量作用域提升至外围(main函数之内)并且可以原创 2015-01-13 17:36:36 · 1283 阅读 · 0 评论