栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

c++ 模版、自定义结构体、auto起占位符作用、decltype关键字获取表达式类型,auto 函数名(参数)->decltype(x+y){},后置返回值函数

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

c++ 模版、自定义结构体、auto起占位符作用、decltype关键字获取表达式类型,auto 函数名(参数)->decltype(x+y){},后置返回值函数

#define _CRT_SECURE_NO_WARNINGS //宏,用于禁止vs安全检查(例如4996错误)
#include
struct _myfun3 //自定义结构体
{
	int data;
	double db;
};
struct _myfun2 //自定义结构体
{
	int data;
	char  c;
};

//模版函数
template 
auto add(T1 t1, T2 t2) ->decltype(t1 + t2)  //函数属于后置返回值函数,需要配合auto占位符
{
	return t1 + t2;
}
//模版函数,重载加号
template 
auto operator +(T1 t1, T2 t2)->decltype(t1.data + t2.data) //auto 占位符,decltype 获取表达式类型
{
	return t1.data + t2.data;
}


int main()
{

	_myfun2 fu2 = {}; //结构体实例化
	_myfun3 fu3 = {};//结构体实例化
	fu2.data = 20;
	fu2.c = 'a';
	fu3.data = 333;
	fu3.db = 20.2;
	
	auto auto_type = add(fu2, fu3); //调用模版函数
	std::cout << "auto_type: " << (auto_type) << std::endl; 

	return 0;
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/396193.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号