Dies erzeugt überhaupt keine Warnung und funktioniert wie erwartet.
Code: Select all
vector vec_2(1024, -3.0f);
vector vec_3(vec_2.begin(), vec_2.end());
Dies erzeugt jedoch C26486 „Übergeben Sie keinen Zeiger, der möglicherweise ungültig ist, als Parameter an eine Funktion.“ Warnung. Funktioniert aber immer noch.
Code: Select all
deque deque_2(1024, -3.0f);
deque deque_3(deque_2.begin(), deque_2.end());
Und ich verstehe irgendwie, warum die IDE versucht, mich vor den Auswirkungen der Übergabe eines Zeigers auf ein Element eines nicht zusammenhängenden Containers wie deque zu warnen. Was ich nicht verstehe ist, welchen Sinn diese Warnung gerade in diesem Fall hat. deque_2.begin() gibt immer einen Iterator zurück, der auf das vorderste Element der Deque verweist, deque_2.end() ist auch in seinem Verhalten ziemlich klar definiert.
Was fehlt mir?
BEARBEITEN: Ich verwende Visual Studio 2019 mit MSVC