1.4.3 更倾向于通用的而不是特殊的手段来实现特性
如我们说到的,如果将无数互不相关的小特性加入C++中,而且不加选择地批准通过,C++将成为一个令人眼花缭乱的“五金店”,不幸的是,这个五金店的产品虽然各有所长,凑在一起却是一盘散沙,缺乏战斗力。所以WG21更希望从中抽象出更为通用的手段而不是加入单独的特性来“练成”C++11的“十八般武艺”。
显式类型转换操作符是一个很好的例子。在C++98/03中,可以用在构造函数前加上explicit关键字来声明构造函数为显式构造,从而防止程序员在代码中“不小心”将一些特定类型隐式地转换为用户自定义类型。不过构造函数并不是唯一会导致产生隐式类型转换的方法,在C++98/03中类型转换操作符也可以参与隐式转换,而程序员的意图则可能只是希望类型转换操作符在显式转换时发生。这是C++98/03的疏忽,不过在C++11中,我们已经可以做到这点了。
其他的一些新特性,比如继承构造函数、移动语义等,在本书的第3章中我们均会涉及。