- 论坛徽章:
- 0
|
经过越来越多的教训,偶不得不说,const,是C/C++历史上最失败的发明
首先,const侮辱了程序员的智商。C/C++的精髓之一既是,相信程序员的能力,
const却说,你程序员是容易出错的,我来帮你编译时把把关。
const一边侮辱着程序员的智商,一般又出尔反尔,笑里藏刀般给出某种妥协,
对了,还有强制类型转换,还有const_cast。你看到的是const,未必是const的。
其次,const严重削弱了编写C++代码的乐趣。写个
Object &GetSubObject()吧,不行,你可能还要再写一个
Object const &GetSubObject() const,
你竟然发现两个代码一样呢,多么愚蠢的做法!
不知道发明STL的人,有没对const恨的咬牙切齿呢!
当我第一次接触STL,发现iterator很好用,
但是当我再看到const_interator时,我想STL的作者一定在牙痒吧。。
当再看到又冒出来一个const_reserver_interator时,心想如果我是STL的作者,一定会咆哮了。。
如果要写C++ template,就更糟糕了,对于类型int const和int,
竟然需要不同的偏特化。偏特化的代码,几乎一样吧,没错了,
都是const惹的祸。
最新写一个templatge,对 pair<A, B>做偏特化,
当我发现不得不对
pair<A,B>
pair<const A, B>
pair<A, const B>
const pair<A, B>
const pair<const A, B>
const pair<A, const B>
六种情况逐一处理时, 我彻底的崩溃了。。
const,你就不能安静的移出C/C++标准吗?
[ 本帖最后由 芙蓉 于 2008-1-4 17:40 编辑 ] |
评分
-
查看全部评分
|