В следующем коде: < /p>
Код: Выделить всё
#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
}
переменная IT1 имеет тип vec_t :: iterator , хотя begin () вызывает на r-value std :: move (v) , что может показаться мне естественным. Мне интересно, почему он не возвращает ove_iterator . Почему нет перегрузки RVALUE REF-квалификации BERT () ? Какая логика стоит?
Подробнее здесь:
https://stackoverflow.com/questions/796 ... containers