Программы на C++. Форум разработчиков
1748936981
Anonymous
В следующем коде: < /p>
[code]#include
int main() {
using vec_t = std::vector;
vec_t v;
auto it1{std::move(v).begin()};// type is vec_t::iterator
auto it2{std::make_move_iterator(v.begin())}; // type is std::move_iterator
}
[/code]
переменная IT1 имеет тип vec_t :: iterator , хотя begin () вызывает на r-value std :: move (v) , что может показаться мне естественным. Мне интересно, почему он не возвращает ove_iterator . Почему нет перегрузки RVALUE REF-квалификации BERT () ? Какая логика стоит?
Подробнее здесь: [url]https://stackoverflow.com/questions/79650830/why-are-there-no-rvalue-ref-qualified-begin-overloads-in-stl-containers[/url]