Это вообще не генерирует никаких предупреждений и работает должным образом.
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