首页 > 编程语言 > 详细

C++11 模板学习总结

时间:2020-10-25 18:54:31      阅读:34      评论:0      收藏:0      [点我收藏+]

概念

函数模板(function template)

template <typename T>
int compare(const T &v1, const T &v2) {
  if (v1 < v2) return -1;
  if (v2 < v1) return 1;
  return 0;
}

template <unsigned N, unsigned M>
int compare(const char (&p1)[N], const char (&p1)[N]) {
  return strcpm(p1, p2);
}
  • 类型模板参数(type parameter):类型说明符,T 为类型参数
  • 非类型模板参数(nontype parameter):表示值而不是类型
    • 非类型模板参数的模板实参必须是常量表达式

类模板(class template)

  • 编译器不能为类模板推断模板参数,因此需要在代码中提供显式模板实参(explicit template argument)列表,它们被绑定到模板参数
  • 类模板的名字不是一个类型名,类模板是用来实例化类型的,而后者总是包含模板参数的;例外:在类模板自己的作用域中可以直接使用类模板名字(当作类型名)而不提供模板实参
  • 类模板的成员函数具有和类模板相同的模板参数;默认情况下,一个类模板的成员函数只有当程序用到它时才进行实例化

C++11 模板学习总结

原文:https://www.cnblogs.com/wangzhiyi/p/13874202.html

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