正因C++语言的极大灵活性和编译简单的特性,在sual Studio 2005进行对C++语言进行操作时,编程时就再也不会需要双下划线了,这大大的为一些开发人员带来了很多方便之处。
对于这一点,我想大部分人都是这么认为的。这种妥协带来了以下结果:1、开发者发现这种语法不自然而且看上去也很不舒服。如果你将这么作,一种自然完美的语言将给你带来巨大的自由,当你编程时就再也不会需要双下划线了
Viusal Studio2005极大地丰富了它的库,可以说是科研背后的清障机和加速器,对于这一点,我想大部分人都是这么认为的。它带来的大量工具及新增的功能性函数使开发人员的生活越来越快乐、简单。
但对于我来说,所有这些与Visual Studio2005在C++语言上做的改变相比却都显得是那么苍白无力。这篇文章中,我着重叙述即将向用户发行的Viusal Studio2005版本给C++带来的变化。
Visual Studio.NET 2002在C++中引入了可扩展的托管,这种扩展带来的关键词以双下划线开始,例如__gc 和 __property。这个版本发行后的这些年来,我写了大量带有双下划线的代码,我不得不承认我从来都不喜欢这一点。
我完全明白真正的原因是什么:双下划线将关键词标志为特殊地扩展,以区分编译器的标准编译规则,在理论上,可以充分使用可扩展的托管,使用其他的编译器编译它,这将忽略所有带双下划线关键词。
解决方案:微软发现了一个解决方法来改变这种语言而不是替换这种语言。但是这种妥协带来了以下结果:
1、开发者发现这种语法不自然而且看上去也很不舒服。
2、不能尽其所能。
例如,下面是托管C++语言声明属性的例子:
- public __gc class Foo
- {
- // hundreds of lines of code
- __property String* get_Text();
- // hundreds of lines of code
- __property void set_Text(String*);
- // hundreds of lines of code
- };
我相信,有良好编程习惯的程序员会将get与set紧挨者使用,并且会紧接着又声明所有下面需要使用的变量。但是语言并不管这些,它不能提供封闭的括号来界定结构,来让你声明"这是一个作为单元的属性"。所以当它运行时显得不自然并且与其他.NET语言也格格不入。
面对这些你能做什么?唯一的方法是将C++语言与CLI自然地结合起来,反之也就是真正改变C++语言。如果你将这么作,一种自然完美的语言将给你带来巨大的自由,当你编程时就再也不会需要双下划线了。
【编辑推荐】