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
默认
<span class="mm-editor-clipboard" data-json="%7B%22type%22%3A%22text%22%2C%22data%22%3A%5B%7B%22type%22%3A1%2C%22style%22%3A%7B%7D%2C%22text%22%3A%22instantiation%20declaration%3A%20%20%60extern%20template%20declaration%60%22%7D%5D%7D">instantiation declaration</span>
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