Несоответствие между конструкторами диапазонов std :: deque и std :: vector - PullRequest
0 голосов
/ 05 ноября 2019

Это вообще не генерирует никаких предупреждений и работает должным образом.

vector<float> vec_2(1024, -3.0f);   
vector<float> vec_3(vec_2.begin(), vec_2.end());

Это, однако, генерирует C26486 "Не передавать указатель, который может быть недействительным, в качестве параметра функции. "предупреждение. Но все еще работает.

deque<float> deque_2(1024, -3.0f);
deque<float> deque_3(deque_2.begin(), deque_2.end());

И я понимаю, почему IDE пытается предупредить меня о последствиях передачи указателя на элемент несмежного контейнера, такого как deque. То, что я не понимаю, в чем смысл этого предупреждения в данном случае, в частности. deque_2.begin() всегда будет возвращать итератор, ссылающийся на самый передний элемент deque, deque_2.end() также довольно четко определен в своем поведении.

Чего мне не хватает?

РЕДАКТИРОВАТЬ: я использую Visual Studio 2019 с MSVC

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...