C++模板会使代码膨胀吗(六)

2014-11-24 09:13:57 · 作者: · 浏览: 2
41ad30 HYTeris!ATL::CWindowImplBaseT >::~CWindowImplBaseT > (void)
00430550 HYTeris!ATL::CWindowImplBaseT >::~CWindowImplBaseT > (void)
0045f860 HYTeris!ATL::CWindowImplBaseT,ATL::CWinTraitsOR<32777,0,ATL::CWinTraits<1442840576,0> > >::OnFinalMessage (struct HWND__ *)
004582a0 HYTeris!ATL::CWindowImplBaseT,ATL::CWinTraits<1442840576,0> >::UnsubclassWindow (int)
0041c490 HYTeris!ATL::CWindowImplBaseT >::GetWindowProc (void)
0044cb50 HYTeris!ATL::CWindowImplBaseT,ATL::CWinTraits<1442840576,0> >::DefWindowProcW (unsigned int, unsigned int, long)
0044c250 HYTeris!ATL::CWindowImplBaseT,ATL::CWinTraits<1442840576,0> >::SubclassWindow (struct HWND__ *)
004458f0 HYTeris!ATL::CWindowImplBaseT,ATL::CWinTraits<1442840576,0> >::GetWindowProc (void)
00459540 HYTeris!ATL::CWindowImplBaseT,ATL::CWinTraits<1442840576,0> >::GetWndStyle (unsigned long)
00458180 HYTeris!ATL::CWindowImplBaseT,ATL::CWinTraits<1442840576,0> >::SubclassWindow (struct HWND__ *)
00457870 HYTeris!ATL::CWindowImplBaseT,ATL::CWinTraits<1442840576,0> >::GetWindowProc (void)
00457910 HYTeris!ATL::CWindowImplBaseT,ATL::CWinTraits<1442840576,0> >::OnFinalMessage (struct HWND__ *)
0040e990 HYTeris!ATL::CWindowImplBaseT >::DestroyWindow (void)
004396d0 HYTeris!ATL::CWindowImplBaseT >::WindowProc (struct HWND__ *, unsigned int, unsigned int, long)
0041d1c0 HYTeris!ATL::CWindowImplBaseT >::DefWindowProcW (unsigned int, unsigned int, long)
004578a0 HYTeris!ATL::CWindowImplBaseT,ATL::CWinTraits<1442840576,0> >::DefWindowProcW (unsigned int, unsigned int, long)
004d8fc8 HYTeris!ATL::CWindowImplBaseT,ATL::CWinTraits<1442840576,0> >::`RTTI Base Class Descriptor at (0,-1,0,64)' =
004d8ff4 HYTeris!ATL::CWindowImplBaseT,ATL::CWinTraits<1442840576,0> >::`RTTI Base Class Array' =
004d8fe4 HYTeris!ATL::CWindowImplBaseT,ATL::CWinTraits<1442840576,0> >::`RTTI Class Hierarchy Descriptor' =
004d79b4 HYTeris!ATL::CWindowImplBaseT >::`RTTI Base Class Array' =
004d79a4 HYTeris!ATL::CWindowImplBaseT >::`RTTI Class Hierarchy Descriptor' =
004e2798 HYTeris!ATL::CWindowImplBaseT,ATL::CWinTraits<1442840576,0> > `RTTI Type Descriptor' =
004d819c HYTeris!ATL::CWindowImplBaseT >::`RTTI Base Class Descriptor at (0,-1,0,64)' =
004d8938 HYTeris!ATL::CWindowImplBaseT,ATL::CWinTraits<1442840576,0> >::`RTTI Base Class Array' =
004d8928 HYTeris!ATL::CWindowImplBaseT,ATL::CWinTraits<1442840576,0> >::`RTTI Class Hierarchy Descriptor' =
004d960c HYTeris!ATL::CWindowImplBaseT,ATL::CWinTraitsOR<32777,0,ATL::CWinTraits<1442840576,0> > >::`RTTI Base Class Array' =
004d95fc HYTeris!ATL::CWindowImplBaseT,ATL::CWinTraitsOR<32777,0,ATL::CWinTraits<1442840576,0> > >::`RTTI Class Hierarchy Descriptor' =
004e2ee8 HYTeris!ATL::CWindowImplBaseT,ATL::CWinTraits<1442840576,0> > `RTTI Type Descriptor' =
004d81c8 HYTeris!ATL::CWindowImplBaseT >::`RTTI Base Class Array' =
004d81b8 HYTeris!ATL::CWindowImplBaseT >::`RTTI Class Hierarchy Descriptor' =
004e34a0 HYTeris!ATL::CWindowImplBaseT,ATL::CWinTraitsOR<32777,0,ATL::CWinTraits<1442840576,0> > > `RTTI Type Descriptor' =
004d95e0 HYTeris!ATL::CWindowImplBaseT,ATL::CWinTraitsOR<32777,0,ATL::CWinTraits<1442840576,0> > >::`RTTI Base Class Descriptor at (0,-1,0,64)' =
004e1f68 HYTeris!ATL::CWindowImplBaseT > `RTTI Type Descriptor' =
004e1688 HYTeris!ATL::CWindowImplBaseT > `RTTI Type Descriptor' =
004d7988 HYTeris!ATL::CWindowImplBaseT >::`RTTI Base Class Descriptor at (0,-1,0,64)' =
004d890c HYTeris!ATL::CWindowImplBaseT,ATL::CWinTraits<1442840576,0> >::`RTTI Base Class Descriptor at (0,-1,0,64)' =
可以看到 CWindowImplBaseT只与 窗口基类和窗口风格相关 ,数量 已经减小很多 ,CWindowImplBaseT模板类本身函数数量不多 ,函数代码量大小也不大 。

然后再看CWindowImplRoot,
template
class ATL_NO_VTABLE CWindowImplRoot : public TBase, public CMessageMa