当前位置: 首页 > news >正文

做网站一个人能做吗推销产品的软文500字

做网站一个人能做吗,推销产品的软文500字,甘肃网站建设专家,广州市学校安全教育平台官网1.类型萃取的原理 类型萃取利用模板形参的推演方式使得类型去掉了引用性质&#xff1a; //消除引用&#xff0c;保留原始特性 //类型萃取 /// </summary> /// <param name"it"></param> template<class _Ty> struct my_remove_reference …

1.类型萃取的原理

类型萃取利用模板形参的推演方式使得类型去掉了引用性质:

//消除引用,保留原始特性  //类型萃取
/// </summary>
/// <param name="it"></param>
template<class _Ty>
struct my_remove_reference
{my_remove_reference(){int x = 10;_Ty Y = 10; }
};
template<class _Ty>
struct my_remove_reference<_Ty&>
{my_remove_reference(){int x = 10;_Ty Y = 10;}
};
template<class _Ty>
struct my_remove_reference<_Ty&&>
{my_remove_reference(){int x = 10;_Ty Y = 10;}};int main()
{my_remove_reference<int>i;my_remove_reference<int&>ilr;my_remove_reference<const int&>cilr;//调用struct my_remove_reference<_Ty&>my_remove_reference<int&&>rll; //调用struct my_remove_reference<_Ty&&>//student<int&> s1;
//	cout << s1.X << endl;
}
#endif

使用示例1:acs作为了a的引用。

/*类型转化示例,头文件type_traits*/
//1 转换成引用型别
int  main()
{int a = 10;int& b = a;add_lvalue_reference<int>::type acs  = a;acs = 100;cout << a;
}

使用示例2:rm的类型是int 而非int&

2 将引用转化为值类型
int main()
{int a = 10;int& ab = a;remove_reference<int&>::type rm = ab;std::cout<<typeid(rm).name();return 0;
}

2.在模板函数中,编译器无法确认返回类型,需要使用typename 告知其是类型

使用类的类型成员:为了知道模板函数中名字是否可以表示一个类型,用typename通知这是表示一个类型。

#if 0
/*使用类的类型成员:为了知道模板函数中名字是否可以表示一个类型,用typename通知这是表示一个类型*/
//此为返回一个容器成员类型的函数
template<class T>
typename T::value_type fun(const T& x)
{cout << "T" << typeid(T).name() << "\n";cout <<"typeid(T::value_type).name()"<< typeid(T::value_type).name() << "\n";if (!x.empty()){return x.back();}else {return typename T::value_type();}//std::cout << x << " ,   T::value_type :" << typeid(T).name() << "\n";//return typename T:: value_type();
}int main()
{int a = 10;vector<int> vec;auto res1 = fun<vector<int>>(vec);cout << typeid(res1).name() << "\n";cout << res1;return 0;
}
#endif

T::value_type  表示为容器元素的类型。

注意:auto res1 = fun<vector<int>>(vec); 也可写成auto res1 = fun(vec);

一个是显示指定参数类型,一个是隐式的自动匹配对应的模板函数。

3.使用decltype关键字返回你想要返回的类型 

在某些时候我们不想使用指定模板实参作为函数的返回值,而使用此关键字告诉编译器,返回类型和decltype括号中的类型相同。

示例:

template<class It>
auto fnc1(It beg, It end) ->decltype(*beg)
{return *beg;
}int main()
{string st = "111";vector<string>arr={ "111" };auto &res = fnc1(arr.begin(), arr.end());cout << typeid(res).name() << " ";cout << res;return 0;
}

移除引用型别

template<class It>
auto fnc(It beg, It end) ->//decltype(*beg)
typename remove_reference<decltype(*beg)> ::type
{cout<<typeid(*beg).name()<<"             ";//*beg = 100;return *beg;
}int main()
{string st = "111";vector<string>arr={ "111" };auto res = fnc(arr.begin(), arr.end());cout << typeid(res).name() << " ";cout << res;return 0;
}

注意,此函数调用时的返回类型要求是非引用类型,所以在函数中做了移除引用型别的处理。

4.引用折叠和理解move

5.模板参数与作用域

6.类模板的成员模板

7,显示实例化

http://www.hrbkazy.com/news/50103.html

相关文章:

  • 做美食网站有哪些新网域名注册查询
  • 网站建设服务费税率多少钱网络营销常用的方法有哪些
  • 广东建设网三库一平台seo关键词排名优化价格
  • 高端网站建设加盟网站页面
  • 基于html5的网站开发软文写手接单平台
  • 拒绝做网站的理由方象科技的服务范围
  • 柳州哪家网站建设专业产品推广渠道
  • 张店网站制作首选专家企业策划推广公司
  • 谷德设计网打不开seo怎么做整站排名
  • 做视频网站需要执照吗如何用html制作网页
  • 成武菏泽网站建设网站建设公司是怎么找客户
  • 关闭网站怎么不保存我做的更改东莞seo优化公司
  • 深圳网站商城建设seo关键词大搜
  • 成都网站建设私单海外广告优化师
  • 大数据营销优势seo项目优化案例分析文档
  • app网站开发书籍下载搜索引擎优化是指什么意思
  • 文化传媒公司名字大全搜索引擎优化论文3000字
  • 公司做网站需要什么手续吗金昌网站seo
  • 无锡新吴区住房和建设交通局网站windows优化软件
  • 做品牌形象网站东莞seo排名收费
  • 新媒体营销岗位招聘郑州网站seo服务
  • 手机上怎么做自己卖菜的网站seo站外优化最主要的是什么
  • 做网站市场分析制作网站代码
  • 网站建设合同属于印花税的哪个税目谷歌优化教程
  • 做宾馆网站全球疫情最新数据
  • 手机网站主页推荐seo主要做哪些工作
  • wordpress调用访问次数seo裤子的关键词首页排名有哪些
  • 温州网站优化推广方案怎么做蛋糕
  • 无上光东莞网站如何在百度发布短视频
  • 把网站做app人力资源培训机构