CPP 0x 标准新特性

22
CPP 0x 标标标 标标 标标标标标 西 西 Linux 标标标标 2011.3

description

CPP 0x 标准新特性. 西安邮电学院 西邮Linux兴趣小组 2011.3. 崭新的CPP,智能的编程,更多的生活!. WARNING. 本PPT仅作为讲解的辅助表现,讲解内容不仅仅包含于所示内容。 所示内容仅作为普通的了解,不作为深刻讨论,可以共同研究深切原因~ (= =|||) 还包括的讨论问题: 1.你在迷茫什么?我在学些什么?我去学些什么? 2.如何开始自己的一个项目? 以上 均为个人观点~~. 泛化 常数表示式. POD简介 什么是常数表达式? 什么泛化的常数表达式?. int GetOne(void) {   return 1; } - PowerPoint PPT Presentation

Transcript of CPP 0x 标准新特性

Page 1: CPP 0x 标准新特性

CPP 0x 标准新特性

西安邮电学院 西邮 Linux 兴趣小组 2011.3

Page 2: CPP 0x 标准新特性

崭新的 CPP,智能的编程,更多的生活!

Page 3: CPP 0x 标准新特性

WARNING本 PPT仅作为讲解的辅助表现,讲解内容不仅仅包含于所示内容。

所示内容仅作为普通的了解,不作为深刻讨论,可以共同研究深切原因 ~ ( = =|||)

还包括的讨论问题:

1.你在迷茫什么?我在学些什么?我去学些什么?

2.如何开始自己的一个项目?

以上 均为个人观点 ~~

Page 4: CPP 0x 标准新特性

泛化常数表示式

Page 5: CPP 0x 标准新特性

POD简介

什么是常数表达式?

什么泛化的常数表达式?

Page 6: CPP 0x 标准新特性

int GetOne(void)

{

return 1;

}

int some_value[GetFive() + 5];

Page 7: CPP 0x 标准新特性

Auto关键字

Page 8: CPP 0x 标准新特性

Auto 在 C 中的作用是什么?

Auto 起到他实际的作用了么?

Auto 在新的 CPP中他有着什么样子的作用?

动态语言 特性是什么?

Page 9: CPP 0x 标准新特性

auto a = 9;

auto b = “asdf”;

auto c = 10.24;

auto int d = 9;

auto int e;

auto e;

Page 10: CPP 0x 标准新特性

Lambda 表达式

Page 11: CPP 0x 标准新特性

什么是 Lambda表达式?( what)

使用 Lambda 表达式 、函数有什么样子的好处?( why)

如何使用 Lambda 函数?( How)

在什么情况使用 Lambda 表达式?( where)

Page 12: CPP 0x 标准新特性

右值引用

Page 13: CPP 0x 标准新特性

左值引用与右值引用

移动语义

完美转发

Page 14: CPP 0x 标准新特性

移动构造

Page 15: CPP 0x 标准新特性

扩展初始化列表

Page 16: CPP 0x 标准新特性

#include <initializer_list>

struct C

{

//initialize C with doubles

C(std::initializer_list<double>);

};

// 用法

C c1={1.5,0.99,23.45,-1.87};

Page 17: CPP 0x 标准新特性

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

};

Page 18: CPP 0x 标准新特性

变参模板

Page 19: CPP 0x 标准新特性

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...);

}

Page 20: CPP 0x 标准新特性

编译器支持

Page 21: CPP 0x 标准新特性

Gcc

Sun C++

Intel C++

MSVC

C++ Builder

IBM XLC++

EDG eccp

HP aCC

Page 22: CPP 0x 标准新特性

结束语与后话