哥哥学C++很生气。

下面一段话:纯是扯淡。。那时候刚从Java跳到C++,对C++的一切还不是很熟悉。

 

现在的理解是:用宏定义来替代namespace,是为了兼容不同的编译器。如果没有的话,不支持namespace的编译器就会报错,主要在一些跨平台的类库或者应用程序中出现。

 

刚才在研究STL的底层代码。突然发现,有条语句很诡异,像是故意躲在角落里,着实吓了我一跳。

 

_STD_BEGIN      //就是这句,相当突兀
template<class _Ty,
    
class _Ax = allocator<_Ty> >
    
class vector;

 

 

F12转到定义处,才发现:

 

  #define _STD_BEGIN    namespace std {
  
#define _STD_END        }
  
#define _STD    ::std::

 

 

于是哥生气了。直接写成namespace std 能死人吗? 能让活人看不懂吗? 幸好还有个F12,要不然哥不被你丫整死。。

posted on 2010-03-05 11:27  joolu  阅读(443)  评论(1编辑  收藏  举报