我正在尝试学习有关标准库实际实现的更多信息,检查Visual Studio中的所有容器。在这里,我看到一些奇怪的结构:
在std::list<>
的某个基类中发现了以下typedef。
typedef typename _Alloc::template rebind<_Ty>::other _Alty;
在这里,"_Alloc" 对应的是分配器模板参数(_Ty是被包含的类型)。我很难找到关于这个 "keyword" 的好解释。到目前为止,我找到的最好的东西是它是分配器接口的一部分。尽管甚至cppreference也无法很好地解释。
template rebind<>
是什么作用?为什么需要在那个位置?