C++ template
2024-12-06 14:28:48 0 举报
AI智能生成
C++ template 知识结构
作者其他创作
大纲/内容
如何定义template
template的相关概念
template
template paramter / template argument
实例化(instantiate) / instantiation
template / non-template代码在组织代码时的不同要求
template declaration
typname的作用
default template arguments
function template
template type paramter / template non-type paramter
inline, constexpr 修饰function template
class template
和function template instantiate的不同
explicit templat argument
class template type
member function of class template
instantiation
默认情况下,class template及其member的instantiate
控制class template的instantiate
默认
instantiation declaration
class template和friend的关系
class template + non-template friend
class template + friend also are template
one-to-one
一般和特定的friendship
non-template class + class template friend
class template + class tepmlate friend(参数彼此独立)
把template type paramter设定为friend
typedef / using 用于template 定义type alias
class template的static member
member template of non-template / template class
控制instantiation: explicit instantiation
extern template declaration / template declaration
Template Argument Deduction
template的参数上应用的conversion规则
针对template type parameter
针对explicit template argument和普通的function paramter
explicit template argument
使用Trailing Return Type形式定义template
需求上,往往return type依赖于template type paramter
type transform系列库函数的作用
function pointer和deduce机制
template type paramter推断参数的规则
为lvalue reference
为T&形式
为const T&形式
为rvalue reference
template的参数rvalue reference可以bind到lvalue
2个传参binding的例外规则1: type deduction / reference collapsing
rvalue reference参数的问题 所导致的使用场景
forward 参数
使用std::forward的方法2点
定义需转发的参数rvalue reference T&&
在调用转发函数的入参,使用std::forward
overload function
function 匹配机制(包含template和non-template
non-template / template overloaded
std::move的实现
type transform: remove_reference<T>::type
static_cast的能力
和std::forward的对比
Variadic Template
相关概念
variadic template 定义形式
Parameter pack:
2种paramter pack
sizeof... operator
parameter pack expansion
pattern
expand
forwarding parameter pack
Template Specialization
相关概念
template specialization
function template的specialization的方法/规则
class template的specialization的方法/规则
class partial specialization
对class 的member function定义specialization
收藏
收藏
0 条评论
下一页