Почему в libstdc ++ нет span :: span (Container &)? - PullRequest
0 голосов
/ 18 января 2020

Согласно cppreference , в C ++ 20 std::span предполагается конструируемым с использованием ссылок на контейнеры:

template <class Container>
constexpr span(Container& cont);
template <class Container>
constexpr span(const Container& cont);

, но в основной ветке libstdc ++'s файл span (по состоянию на 18 января 2020 года), я не вижу этих конструкторов. Я вижу конструктор, принимающий Range&& - это достаточная замена? Или - я что-то упустил?

1 Ответ

3 голосов
/ 19 января 2020

При работе с функциями C ++, которые постоянно меняются (например, для стандартов, которые еще не сделаны), лучше go к источнику , а не к вторичной документации, такой как Cppreference.

На момент написания этой статьи рабочий проект стандарта делает то, что говорит libstdc ++: единственная перегрузка, которая может принимать && непрерывного диапазона. Ограничения на эту функцию достаточно схожи с ограничениями в Cppreference, так что они в основном разные способы сказать одно и то же, но libstdc ++ реализует стандарт в том виде, в котором он существует в настоящее время.

...