揭露Boost::typeof的实现阴谋

来源:互联网 发布:中国建筑网招聘网络 编辑:程序博客网 时间:2024/05/16 12:21

我原来由于一份贴子挑起我看Boost::type_of实现,这份贴子连接为:

0x之类型推断

请见46楼,当时我已经推断出,这个Boost::type_of的实现所使用的类型演绎是通过VC的一个BUG特征实现的,从而可以做到类型注册,

且没有任何运行时开销。呵呵。

 

不过对此我仍然有所疑惑。直到1个小时左右前,有意无意地看了Boost官网(其实一开始是想关心一下C++0x的推进情况),然后找到了我原来的推断是正确的。链接如下:

 

Chapter 24. Boost.Typeof

 

而在“Native typeof support and emulation”链接中就能找到依据。这个是由一个东欧人(名字看上去像)发现的。而且也有比较详细的代码示例,其中就展示了VC的鬼把戏,呵呵。

 

最后想说的可能与主题无关,呵呵:当前只含有纯C编译器的开发套件已经是难寻难觅了,很多嵌入式开发环境(CCS、VisualDSP++、Wind River、RVDS等)都含有标准C++编译器。而且这些开发环境中的编译器均支持C99标准的大部分特性,这一点VC做得不够好。而依照我的推断,MS之所以不支持C99实际上是与GNU的过节引发的——要知道C99的很多特性都来源于GNU-C编译器的语言特性,这点上也不难看出微软的风度有多大,呵呵。不过从微软同Java当年的关系也能看出。我个人虽然现在属于苹果派,但还是希望微软能够更大度一些。