
#define _CRT_SECURE_NO_WARNINGS //宏,用于禁止vs安全检查(例如4996错误) #includestruct _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; }
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)