Post on 03-Jan-2016
description
CPP 0x 标准新特性
西安邮电学院 西邮 Linux 兴趣小组 2011.3
崭新的 CPP,智能的编程,更多的生活!
WARNING本 PPT仅作为讲解的辅助表现,讲解内容不仅仅包含于所示内容。
所示内容仅作为普通的了解,不作为深刻讨论,可以共同研究深切原因 ~ ( = =|||)
还包括的讨论问题:
1.你在迷茫什么?我在学些什么?我去学些什么?
2.如何开始自己的一个项目?
以上 均为个人观点 ~~
泛化常数表示式
POD简介
什么是常数表达式?
什么泛化的常数表达式?
int GetOne(void)
{
return 1;
}
int some_value[GetFive() + 5];
Auto关键字
Auto 在 C 中的作用是什么?
Auto 起到他实际的作用了么?
Auto 在新的 CPP中他有着什么样子的作用?
动态语言 特性是什么?
auto a = 9;
auto b = “asdf”;
auto c = 10.24;
auto int d = 9;
auto int e;
auto e;
Lambda 表达式
什么是 Lambda表达式?( what)
使用 Lambda 表达式 、函数有什么样子的好处?( why)
如何使用 Lambda 函数?( How)
在什么情况使用 Lambda 表达式?( where)
右值引用
左值引用与右值引用
移动语义
完美转发
移动构造
扩展初始化列表
#include <initializer_list>
struct C
{
//initialize C with doubles
C(std::initializer_list<double>);
};
// 用法
C c1={1.5,0.99,23.45,-1.87};
template<typename T> class initializer_list
{
//private data members: a pointer + size, or two pointers
public:
//constructors:
constexpr initializer_list(const T*, const T*); //[first,last)
constexpr initializer_list(const T*, int);//[first,first+size)
//accessing the range
constexpr int size() const; //number of elements
constexpr const T* begin() const; //first element
constexpr const T* end() const; //one-past-the-last element
};
变参模板
template<typename T>
void print_comma_separated_list(T&& value)
{
std::cout<<value<<std::endl;
}
template<typename First,typename ... Rest>
void print_comma_separated_list(First&& first,Rest&& ... rest)
{
std::cout<<first<<",";
print_comma_separated_list(rest...);
}
编译器支持
Gcc
Sun C++
Intel C++
MSVC
C++ Builder
IBM XLC++
EDG eccp
HP aCC
结束语与后话