Item 6: auto推导出非预期类型时请显示指定类型
Item 5 展示了一些使用auto定义变量的优势,但是auto在有些时候也会推导出一些我们不期望的类型。比如,一个函数通过传入一个Widget返回一个std::vector<bool>的类型,容器内的每一个bool值表示Widget的一个特征:
std::vector<bool> features(const Widget& w);
比如第5个bool值表示Widget是否是高优先属性,代码可以写成下面的形式:
Widget w;
...
bool highPriority = features(w)[5]; // w 是否是高优先属性?
...
processWidget(w, highPriority) // 根据是否是高优先性来处理 w
阅读更多 »Item 6: auto推导出非预期类型时请显示指定类型