Ungleichheit zwischen den Bereichskonstruktoren std::deque und std::vectorC++

Programme in C++. Entwicklerforum
Anonymous
 Ungleichheit zwischen den Bereichskonstruktoren std::deque und std::vector

Post by Anonymous »

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

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post