非类型模板参数

这篇具有很好参考价值的文章主要介绍了非类型模板参数。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

背景

除了日常用的typename以外,模板还有很多非类型模板参数

具体

  • int 或者 enums
  • 对象指针和函数指针(好像很多编译器都支持void*)
  • 左值引用(用的不多)
  • 模板模板类型

模板模板类型

其他都比较常见且容易理解,重点看看这个:文章来源地址https://www.toymoban.com/news/detail-606491.html

template < typename ELE, template<typename A, typename B> typename Base>
class Student
{
	Base<int, float> tmp;
	Base<ELE, int>
}
  • Base前面的typename在C++11之前必须是class,C++11以后才允许用typename
  • 这个Student的第二个模板参数必须传入一个双参数的模板类型
  • 这样写的作用就是仅仅为了省一点代码,比如以前可以如下使用,其他好处目前还没用到,大佬看到可以帮忙补一下。
//before
Student<int, Base<int, float>>
//now
Studeng<int, Base>

到了这里,关于非类型模板参数的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【C++学习】模板进阶——非类型模板参数 | 模板的特化 | 分离编译

    🐱作者:一只大喵咪1201 🐱专栏:《C++学习》 🔥格言: 你只管努力,剩下的交给时间! 模板我们之前一直都在使用,尤其是在模拟STL容器的时候,可以说,模板给类增加了更多的可能性,是C++最重要的部分之一。下面本喵来更深入的讲解一下模板。 在上面代码中,创建了

    2023年04月13日
    浏览(34)
  • C++函数模板、特例化、非类型参数、类模板、allocator

    模板对类型能进行参数化成【模板参数】,输入的是类型,生成的是代码。使用的时候,每指定一份类型,模板就会根据类型生成一份新的代码(比如函数模板实例化生成的是【模板函数】),有利于减少代码量,通过较少的代码也能实现函数重载。 调用函数模板的时候,一

    2024年02月21日
    浏览(41)
  • C++17完整导引-模板特性之占位符类型模板参数

    自从 C++17 起,你可以使用占位符类型( auto 和 decltype(auto) )作为 非类型模板参数的类型 。这意味着我们可以写出泛型代码来处理不同类型的非类型模板参数。 自从 C++17 起,你可以使用 auto 来声明非类型模板参数。例如: 这允许我们为不同类型实例化非类型模板参数 N :

    2024年02月06日
    浏览(32)
  • 【C++初阶(十)】C++模板(进阶) ---非类型模板参数、模板的特化以及模板的分离编译

    本专栏内容为:C++学习专栏,分为初阶和进阶两部分。 通过本专栏的深入学习,你可以了解并掌握C++。 💓博主csdn个人主页:小小unicorn ⏩专栏分类:C++ 🚚代码仓库:小小unicorn的代码仓库🚚 🌹🌹🌹关注我带你学习编程知识 模板参数可分为类型形参和非类型形参。 类型形

    2024年01月18日
    浏览(35)
  • 【C++】泛型编程 ① ( 函数模板 | 函数模板概念 | 函数模板意义 | 函数模板定义语法 | 函数模板调用语法 | 显式类型调用 | 自动类型推导 )

    在 C++ 语言中 , 泛型编程 的 核心就是 函数模板 和 类模板 ; 函数模板 Function Template 是 C++ 语言 中的 重要特性 ; 函数模板概念 : 建立一个 \\\" 通用函数 \\\" , 不指定该函数的 函数返回值类型 和 函数参数类型 , 仅使用 \\\" 虚拟类型 \\\" 代表 上述 两种类型 , 该 \\\" 通用函数 \\\" 就是 \\\" 函数模

    2024年02月19日
    浏览(37)
  • 【C++】泛型编程 ③ ( 函数模板 与 普通函数 调用规则 | 类型匹配 | 显式指定函数模板泛型类型 )

    上一篇博客 【C++】泛型编程 ② ( 函数模板与普通函数区别 ) 中 , 分析了 函数参数 类型匹配 下的 普通函数 与 函数模板 的调用规则 ; 为 函数模板 重载了 普通函数 , 普通函数有指定的类型 ; 传入实参 , 调用 普通函数 还是 模板函数 , 是有一定的规则的 ; 普通函数 与 传入实

    2024年02月21日
    浏览(41)
  • C++模板的模板参数(五)

    在C++中,模板的模板参数(Template Template Parameters)是一种特殊的模板参数,允许我们将另一个模板作为模板参数传递给一个模板。这种技术可以用于实现更灵活和通用的模板设计。 模板的模板参数使用两个 “template” 来指示,其中第一个 “template” 用于声明模板参数

    2024年02月10日
    浏览(34)
  • 【C++干货铺】非类型模板 | 模板特化 | 模板分离编译

    ========================================================================= 个人主页点击直达: 小白不是程序媛 C++系列专栏: C++干货铺 代码仓库: Gitee ========================================================================= 目录 非类型模板参数 模板的特化 什么是模板特化? 函数模板特化 类模板的特化 全

    2024年02月04日
    浏览(53)
  • C++初阶--类型模板

    先看一个例子: 这是一些对于Swap重载的函数,区别是类型不同; 虽然能够重载使用,但 代码复用率比较低 ,如果我们让别人直接调用我们的函数,只使用整形类型的Swap(),那么其他函数就有点浪费了; 而且 代码的维护性比较低 ,一个出错可能会导致重载都出错。 所以

    2024年02月05日
    浏览(38)
  • C++11可变参数模板(typename... Args模板参数包或class... Args)(Args... args函数参数包)(递归展开与参数包展开(只支持C++17))

    C++可变参数是指函数的参数个数是可变的,可以在函数定义时不确定参数的个数,需要在函数体内通过特定的语法来处理这些参数。C++11标准引入了新的可变参数模板,使得可变参数的处理更加方便和灵活。在函数定义时,可以使用省略号(…)来表示可变参数,然后通过va_li

    2024年02月08日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包