C++ 标准库读书杂记三

1.R“”(元字符串)

R"\\n" = "\\\\n" 转义字符更简单了,不需要多一个\\。在正则表达式中使用元字符更方便。

元字符详细定义:R“字符序列()字符序列” ,字符序列由纯字母组成0-16个。

2.L/U/u" "(编码字符)

L:wchar_t 

U:char32_t

u:char16_t

3.noexcept指明某个函数不抛出异常。

eg:

void function()noexcept; = void function()noexcept(true);

void function()noexcept (bool expression);//if false ,throw out exception

4.constexpr (常量表达式)

在编译期间就优化或者计算出结果的表达式。

5.新的Template 特性

5.1模板可以接受变参定义。(T & ... args)看不懂,等大神休假回来请教。page 27

5.2 alias template (别名模板)

5.3 可拥有默认的template 实参

6 Lambda (闭包函数)不具名的函数对象,[]占位符,表示函数名字。

Lambda 是一个功能定义式。定义在statement or expression 内部

使用定义式(lambda  body)由[](所谓的lambda inntroducer)引入。

// lambda.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include <iostream>

using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
	int x = 0;
	int y = 42;
	auto qqq = [x, &y]{
		cout << "x: " << x << endl;
		cout << "y: " << y << endl;
	};
	x = y = 77;
	qqq();
	qqq();
	cout << "final y: " << y << endl;
	system("pause");
	return 0;
}

7.decltype //auto 与之相对

找出表达式的类型:decltype( parameter):: value_type parameter1;获取parameter的累心类型,用来定义了parameter1变量。

template <typename T1,typename T2>

decltype(x+y)::value_type add (T1 x,T2 y);//泛型编程  

8.scoped enumeration 感觉这个特性没啥用啊哈哈

enum calss MYENUM:char{mr ,ms ,co,none};

class

char

9.新的数据类型

//char16_t   //char32_t  //long long //std::nullpte_t

10.模板参数默认值

template <typename T ,typename container = vector <int>>

class MYClass ;

MYClass <int> myc1; //(int ,vector<int >)

11.成员模板(member template )

calss 的成员函数可以是template 。然而member template不能是虚函数。

12.具有可移植性的main函数定义方式

int main()
{
	...
}
int main(int argc, char *argv[])
{
	...
}

默认 return 0;除0之外都认为是错误返回。在return 之前可以调用 exit(), quick_exit() , (c11)terminate()提前退出进程。

接下来是第四章,笔记可能会逐渐减少,往后,只有需要分析的问题,才会记录。因为这样做笔记进度比较慢,主要会上传一下demo以及标准库的实现原理分析。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值