C++11特性-模板的改进

1.模板的右尖括号>>

         C11模板的多个右尖括号需要一个空格符fun<A<> >,之前连在一起是右移操作符

          C11特性优化了这个fun<A<>>

2.模板的默认参数

         函数模板能添加模板参数         template <typename T = int>

         类模板参数多个时,必须从右往左添加默认参数;函数模板多参时,都可以

         模板参数的优先级(从高到低):

                1.显示指定参数类型

                2.使用推导的参数类型

                3.默认的模板参数类型

                4.没有默认也不能推导除参数类型,则会报错

 3.using与typedef

        using与typedef定义类型的别名,不会创建新的类型

 

        定义基础类型一样

typedef int int111;//typedef 旧的类型名 新的类型名(别名)
using int222 = int;//using 新的类型名(别名)= 旧的类型名 

        定义函数指针时,using更直观

typedef int(*funcc)(int, string);
using funccc = int(*)(int, string);//可读性

        定义模板时,using能直接使用,typedef需要在定义外套一个类或者结构体

template <typename T>
//typedef ds<int, T>  Ds;
//使用typedef时,需要使用class或者struct外包一层
struct MyStruct1
{
	typedef map<int,T>  Ds;
};

template <typename T>
using Um = map<int, T>;

4.可变参的模板函数

        a.申明及调用

         b.参数包的展开-递归

         c.参数包的展开-非递归

5.可变参的模板类     

        a.参数包的展开-模板类继承方式

        b.参数包的展开-模板类递归和特化方式

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值