首页 > 编程语言 > 详细

C++模板的模板参数

时间:2021-08-25 23:37:12      阅读:16      评论:0      收藏:0      [点我收藏+]

C++模板编程

示例:

首先假设我们要传递以下模板函数:

1 template<typename T>
2 constexpr T Max(T _a, T _b) {
3     return _a > _b ? _a : _b;
4 }

编写接收该函数的函数模板

1 template<typename T,typename Fun>
2 constexpr T Test(T _a, T _b, Fun _fun) {
3     return _fun(_a, _b);
4 }
5 
6 int main()
7 {
8     constexpr int s = Test(12, 13, Max<int>);
9 }

这个地方需要注意的是,Max只能作为函数参数进行传递,不能使用模板参数进行传递,因为Max是一个函数而非一个类型

类模板传递:

 1 template<typename T>
 2 struct MyStruct {
 3 
 4 };
 5 
 6 template<template<typename T> class _MyClass>
 7 constexpr auto Test(_MyClass<int> _s) {
 8     return _s;
 9 }
10 
11 int main()
12 {
13     Test(MyStruct<int>{});
14 }

类模板是一个类型,可以作为与其他基础类型一样传递方式传递,不过类模板的参数需要加入template<>声明

C++模板的模板参数

原文:https://www.cnblogs.com/Super-biscuits/p/15186832.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!