我正在浏览EASTL的列表类来查看作者如何实现节点.我的期望是一个简单的类/结构.相反,我看到一个基础和一个继承自这个基础的节点(仍然过于简单,但为什么还有两个类?).他的评论解释了原因:
我们将ListNodeBase与ListNode(下面)分开定义,因为它允许我们进行非模板化操作,例如insert,remove(下面),并且它使得列表锚节点不携带T,其中由于存在用户没有明确创建的额外Ts,会浪费空间并可能导致用户感到惊讶.所有这一切的缺点是,鉴于节点指针的类型是ListNodeBase而不是ListNode,它会使列表的调试查看更加困难.但是,请参阅下面的ListNodeBaseProxy.
我不明白这里有几件事.我做明白为什么它会使调试观看有点困难的部分,但到底是什么,他的意思是list anchor node doesn't carry a T with it和would waste space and possibly lead to surprising the user due to extra Ts existing that the user didn't explicitly create?