“typename”在 asio 分配示例中的含义
What the ‘typename’ mean in asio allocation exmple
第 109 行显示在 asio allocation example
template <typename T>
class handler_allocator
{
...
private:
template <typename> friend class handler_allocator; // line 109
...
}
我想知道 template 是什么意思?它是 template < typename T> 的常用方式吗?顺便说一句,这个例子可以工作。
handler_allocator
是一个 class 模板 ,因为只有在具体实例化时才会产生实际的 class。因此,这些实例化是多重的,因此每个 T
最终得到一个 class。如果你想让这些不同的 classes 成为彼此的 friend
那么这条线就是你要走的路。
I wonder what the template < typename > mean ? Is it template <
typename T> ... ?
不完全是。如果您要添加 T
,那么它将导致无效代码,因为此 T
将 shadow 第一个 T
。您可以改为添加任何其他命名标识符(假设 S
),但它在没有任何一种情况下都可以工作,因为在此代码段中没有用到它。
第 109 行显示在 asio allocation example
template <typename T>
class handler_allocator
{
...
private:
template <typename> friend class handler_allocator; // line 109
...
}
我想知道 template
handler_allocator
是一个 class 模板 ,因为只有在具体实例化时才会产生实际的 class。因此,这些实例化是多重的,因此每个 T
最终得到一个 class。如果你想让这些不同的 classes 成为彼此的 friend
那么这条线就是你要走的路。
I wonder what the template < typename > mean ? Is it template < typename T> ... ?
不完全是。如果您要添加 T
,那么它将导致无效代码,因为此 T
将 shadow 第一个 T
。您可以改为添加任何其他命名标识符(假设 S
),但它在没有任何一种情况下都可以工作,因为在此代码段中没有用到它。