Scott Meyers, Herb Sutter и others выступают за функции, не являющиеся членами, над функциями-членами. И с дополнениями, такими как std::begin
, std::cend
и т. Д., Кажется, что STL движется в этом направлении. Если это так, почему нет std::size
?Почему нет std :: size?
Я предполагаю, потому что это достаточно, чтобы определить свою собственную версию легко:
namespace std {
// C++14
template <typename C>
decltype(auto) size(const C& c)
{
return distance(cbegin(c), cend(c));
}
}
Или я что-то отсутствует? т.е. существует ли причина не для использования не являющегося членом size
?
[Сейчас] (https://isocpp.org/files/papers/n4280.pdf) (ну, не совсем сейчас). [Только что проголосовали в рабочем документе в ноябре прошлого года] (http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4251.html) (см. LWG motion 20). –
Я также должен указать, что мой пример 'std :: size' не очень хорош! – Daniel
Вы пропустили очевидную поддержку 'T [n]', да. – MSalters