【C++11 新特性】教程文章相关的互联网学习教程文章

【从零学C++11(中)】移动语义、右值引用、std::move()、完美转发等新特性【代码】

C++118. 默认函数控制显式缺省函数删除默认函数9. 右值引用【★】移动语义C++11中的右值右值引用std::move()注意点完美转发8. 默认函数控制 在C++中对于空类编译器会生成一些默认的成员函数,比如:构造函数、拷贝构造函数、运算符重载、析构函数、&和const&的重载、移动构造、移动拷贝构造等函数。 如果在类中显式定义了,编译器将不会重新生成默认版本。有时候这样的规则可能被忘记,最常见的是声明了带参数的构造函数,必要时则...

【从零学C++11(下)】lambda表达式、线程库、原子操作库等新特性【代码】【图】

C++1110. lambda表达式【★】语法捕获列表函数对象与lambda表达式对比11. 线程库【★】线程的启动线程的结束原子性操作库(atomic)10. lambda表达式【★】 例如在C++98中,如果想要对一个数据集合中的元素进行排序,可以使用std::sort方法,具体如下: #include <algorithm> #include <functional> int main(){int array[] = {4,1,8,5,3,7,0,9,2,6};// 默认按照小于比较,排出来结果是升序std::sort(array, array+sizeof(array)/s...

C++11 新特性学习【代码】

在Linux下编译C++11 #include<typeinfo> int main() {auto a=10;cout<<typeid(a).name()<<endl; //得到a的类型,只是一个字符串return 0; } 编译需要加-std=c++11,如下例:auto C++11中引入auto第一种作用是为了自动类型推导 auto的自动类型推导,用于从初始化表达式中推断出变量的数据类型。通过auto的自动类型推导,可以大大简化我们的编程工作 auto实际上实在编译时对变量进行了类型推导,所以不会对程序的运行效率造成不...

c++11新特性(3)之可变参数模板(variadic template)

可变参数模板(variadic template) 听说这是一个c++新特性 中最大的改动,我的认识有限只能写一些十分基础的理解,但我会持续更新。 所谓可变参数模板,就是模板函数的参数是可以变化的,不是一个、两个参数,而是一包参数,这一包参数可以是0个到n个,这种将参数打包的操作就是可变参数模板。具体的语法如下:template<typename T,typename... Args> void printX(T& firstarg,Args&... args);我们也可以得到这个包的大小:这是承...

转:C++11常用新特性快速一览【代码】

转载至:https://blog.csdn.net/jiange_zh/article/details/79356417 1.nullptr nullptr 出现的目的是为了替代 NULL。 在某种意义上来说,传统 C++ 会把 NULL、0 视为同一种东西,这取决于编译器如何定义 NULL,有些编译器会将 NULL 定义为 ((void*)0),有些则会直接将其定义为 0。 C++ 不允许直接将 void * 隐式转换到其他类型,但如果 NULL 被定义为 ((void*)0),那么当编译char *ch = NULL;时,NULL 只好被定义为 0。 而这依然会...

c++11新特性std::is_trivial【代码】

首先 std::is_trivila 定义: template< class T > struct is_trivial;结构成员函数: value 返回true,如果T 包含默认的构造函数。 其他情况下,返回false。 一种可能的实现方式: template< class T > struct is_trivial : std::integral_constant< bool,std::is_trivially_copyable<T>::value &&std::is_trivially_default_constructible<T>::value > {};样例: struct A {A()= default;int m; };struct B {int m; };struct C{C...

C++11 新特性总结

http://www.cnblogs.com/George1994/p/6684989.html 前言 转载请注明出处,感谢! C++11 的新特性 1 变量和基本类型 1.1 long long 类型 扩展精度浮点数,10位有效数字 1.2 列表初始化 初始化的几种不同形式,其中用花括号来初始化变量称为列表初始化; 比如:int i = 0; int i = {0}; int i{0}; int i(0);需要注意的是,当用于内置类型的变量时,这种初始化形式有一个重要的特点:如果我们使用初始化且初始值存在丢失信息的风险,...

[C++11新特性] 智能指针详解

动态内存的使用很容易出问题,因为确保在正确的时间释放内存是极为困难的。有时我们会忘记释放内存产生内存泄漏,有时提前释放了内存,再使用指针去引用内存就会报错。 为了更容易(同时也更安全)地使用动态内存,新的标准库提供了两种智能指针类型来管理动态对象。智能指针的行为类似常规指针,区别在于它负责自动释放所指向的对象。这两种智能指针的区别在于管理底层指针的方式:shared_ptr允许多个shared_ptr类型指针指向同一个...

c++11新特性总结

1、类型与变量相关 1.1、nullptr: 取代了NULL,专用于空指针 1.2、constexpr: 近似const, 可以修饰变量,也可以修饰函数, 修饰变量如: const int global = 100; int main () { int temp = 100; constexpr int a = 1; //right constexpr int b = global; //right constexpr int c = temp; //wrong } 既可以赋值字面常量也可以赋值以const变量 重点:constexpr修饰的函数,生效于编译时而不是运行时, 重点应用于修饰函数使其在编...

C++11.新特性

1,统一的初始化方法 1,定义变量:如vector <int> a {1,2,3,4}; 2,创建对象:当类A的构造函数有两个参数时,A的实例化: A a {1,2}; 3,返回值:当返回值类型是 vector<int>时,return {1,2,3,4,5,6,7}; 2,auto关键字 1, 使用auto定义变量,必须初始化 ,在编译阶段由编译器推导得来, auto声明的变量的实际的类型,因此auto并非类型, 而是类型声明的占位符,编译器会在编译期间将auto...

保持与C99兼容的C++11新特性

__func__预定义标识符 __func__返回所在函数的名字, 也可以使用于类和结构体中. 例如 const char * hello() { return __func__; } 返回 "hello" struct TestStruct { TestStruct () : name (__func__) {} const char * name; }; 但是, 不可将其用作函数参数的默认值, 因为__func__在函数声明时还未被定义 void FuncFail (string func_name =__func__) {}; // 无法通过编译 _Pragma标识符 使用方法: _Pragma(字符串字面...

基于Visual C++2010与windows SDK fo windows7开发windows7平台的新特性--HighDPI为视觉障碍的人服务【图】

? ?基于Visual C++2010与windows SDK fo windows7开发windows7平台的新特性--HighDPI为视觉障碍的人服务 ? ? HighDPI是windows7提出的一种新特性,使应用程序更加容易地为视觉障碍者服务,使程序随着窗口一样自动缩放,展示完美的效果,下面我们来实践一下,如何开发基于HIGHDPI的应用程序首先体验下,在英文windows7下如何设置highDPI在控制面板下设置,设置highDPI新特性 您将运行在96 DPI设置和144 DPI设置应用程序,然后...

shellmad-07_C++新特性 强制转换static_cast【代码】

C语言中存在隐式类型转换 #include <iostream> using namespace std; int main(){int n = 5;flaot f = 10.0f;f = n;return 0; }但是这样写, 给程序员带来烦恼, 因为看到f = n的时候, 需要判断是否发生了隐式类型转换 static_cast将这种转换明确一下, 说明隐式类型转换 ... int main(){int n = 5;float f = 10.0f;f = static_cast<float>(n);return 0; }什么情况下, 可以发生隐式类型转换, 什么情况下不能发生隐式类型转换 低风险的...