Benutzer mit den meisten Antworten
Bug im VS2010 compiler?

Frage
-
#include <vector> using namespace std; void main() { vector<float*> v; v.insert(v.begin(),NULL);//vs2010 compiler bug? - interpreting 0 as int instead of as void* bzw float* }
compiliert mit früheren versionen einwandfrei...
mit 2010 erwartet der compiler beim zweiten argument int wobei null ja eher void* bzw float* sein sollte...
daraufhin kommt es natürlich zu einem compiler fehler und abbruch...
- Verschoben Martin RichterModerator Samstag, 28. August 2010 15:23 (aus:Visual Studio)
Antworten
-
Hi Devil,
also das ist eigentlich das falsche forum es gehört ins C++ Forum....
Also im VS2010 C++ gibts neuerdings für den Pointer auf Null und heisst nullptr.
Damit sollte es laufen ;-)
- Als Antwort markiert Robert BreitenhoferModerator Donnerstag, 2. September 2010 13:26
-
Ich habe Kontakt mit der Prodzuktgruppe aufgenommen.
Das Problem liegt am "perfect forwarding"!Bzgl. pair wird das gefixed werden, und so weit ich es verstehe auch für insert statements, allerdings alles erst in VC11. Aber diese Info ist mehr oder weniger nicht offiziell.
Das Problem ist, dass der Standard bzgl. C++0x hier noch Änerdungen bekam aber diese in VC10 nicht mehr einfließen konnten!
Wenn es für Dich ein Problem darstellt, dann kontaktiere den MS-Support. Vielleicht bekommst Du einen Hotfix wenn Du viele Gründe hast...
Martin Richter -- MVP for VC++ [Germany] -- http://blog.m-ri.de- Als Antwort markiert Robert BreitenhoferModerator Donnerstag, 2. September 2010 13:31
Alle Antworten
-
Hi Devil,
also das ist eigentlich das falsche forum es gehört ins C++ Forum....
Also im VS2010 C++ gibts neuerdings für den Pointer auf Null und heisst nullptr.
Damit sollte es laufen ;-)
- Als Antwort markiert Robert BreitenhoferModerator Donnerstag, 2. September 2010 13:26
-
Das ist definitv kein Fehler NULL ist eben kein (void*)0 sondern eben nur 0. Auch VC 2008 und 2005 hätten hier ein Problem.
Wenn Du einen Zeiger meinst müsstest Du es angeben.
Brian hat Dich auf die C++0x Erweiterung nullptr als bessere Lösung ja schon hingewiesen.
Martin Richter -- MVP for VC++ [Germany] -- http://blog.m-ri.de -
Das ist definitv kein Fehler NULL ist eben kein (void*)0 sondern eben nur 0. Auch VC 2008 und 2005 hätten hier ein Problem.
das ist eben nicht so - mit vs2005 wie auch vs2008 compiliert und läuft das beispiel oben wie erwünscht... (in dem fall wohl als float*)ich stelle dieses problem in nahezu allen libs fest die ich gerade verwende (lua,luabind,boost und weitere)..
haben bisher immer ohne probleme compiliert - tun es immernoch mit vs2008 aber vs2010 bringt an den entsprechenden stellen eben einen fehler...
-
-
Ich habe Kontakt mit der Prodzuktgruppe aufgenommen.
Das Problem liegt am "perfect forwarding"!Bzgl. pair wird das gefixed werden, und so weit ich es verstehe auch für insert statements, allerdings alles erst in VC11. Aber diese Info ist mehr oder weniger nicht offiziell.
Das Problem ist, dass der Standard bzgl. C++0x hier noch Änerdungen bekam aber diese in VC10 nicht mehr einfließen konnten!
Wenn es für Dich ein Problem darstellt, dann kontaktiere den MS-Support. Vielleicht bekommst Du einen Hotfix wenn Du viele Gründe hast...
Martin Richter -- MVP for VC++ [Germany] -- http://blog.m-ri.de- Als Antwort markiert Robert BreitenhoferModerator Donnerstag, 2. September 2010 13:31