斯科特·迈耶斯(Scott Meyers),赫伯·萨特(Herb Sutter)和其他人提倡非成员函数而非成员函数。而随着增加,如std::begin
,std::cend
等,似乎STL是朝着这个方向努力。如果是这样,为什么没有std::size
呢?
我认为是因为定义您自己的版本非常容易:
namespace std {
// C++14
template <typename C>
decltype(auto) size(const C& c)
{
return distance(cbegin(c), cend(c));
}
}
还是我错过了什么?即有没有不使用非会员的理由size
吗?
为什么没有
std::size
?
因为没有人及时编写提案以使其包含在C ++ 14中。提案的初稿定于2014年5月,远远早于2014年2月发送C ++ 14标准进行最后一轮投票。
该提案的修订版在11月的委员会上次会议上被投票通过了C ++工作文件(请参阅LWG动议20),因此您很可能会在下一版标准(C ++ 17)中看到它。 ,以及std::empty()
和std::data()
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句