“类型名称”在asio分配示例中的含义

时间:2018-09-07 14:11:20

标签: c++ c++11 asio

第109行显示在asio allocation example

template <typename T>
class handler_allocator
{

...

private:
  template <typename> friend class handler_allocator; // line 109

...

}

我想知道模板 是什么意思吗?它是模板<类型名T> 的逗号吗?顺便说一下,该示例可以工作。

1 个答案:

答案 0 :(得分:2)

handler_allocator是一个类模板,例如,只有在具体实例化后,它才会生成实际的类。因此,这些实例化是多重的,因此每个T最终都有一个类。如果您想让这些不同的类彼此friend互斥,那么此行就是正确的选择。

  

我想知道模板是什么意思?是模板<   类型名称T> ...?

不完全是。如果添加T,则将导致无效代码,因为此T shadow 遮盖前T。您可以添加任何其他命名的标识符(例如S),但是由于没有任何作用,因此它不能工作,因为此代码段中没有使用它。