C++11 für Visual C++ 2010
-
Hey gibt es eine Möglichkeit den C++ Standard von Visual Studio bzw. Visual C++ zu aktualisieren, ohne gleich die neue Version der Entwicklungsumgebung runterzuladen ??
Wäre nett wenn wen ich z.b die Schleifenvariable "elem" verwenden könnte.
Danke im voraus.
-
Nein
-
Was ist das Problem daran, eine Schleifenvariable namens elem zu benutzen? (Ich nehme an du meinst was anderes, aber )
-
Das Problem ist, dass elem erst seit C++ 11 verfügbar ist, somit muss ich den Umständlichen Weg gehen :
int array[3];
int loop;for(loop = 0; loop > 3; ++loop)
{
...
}Was aber wenn ich anstatt einem Array ein Vector werwenden möchte ( Und ich nicht die Anzahl der Werte weiß, oder Werte hinzufügen möchte ) ??
-
My_Ouzo schrieb:
Was aber wenn ich anstatt einem Array ein Vector werwenden möchte ( Und ich nicht die Anzahl der Werte weiß, oder Werte hinzufügen möchte ) ??
Die Anzahl der Werte bekommst du über die size()-Methode, und iterieren kannst du mit Iteratoren.
Ich bin mir ziemlich sicher, dass du von range-based for sprichst (
for (x : C) { ... }
). Mit irgendwas namens "elem" hat das nichts zu tun. Vielleicht hast du mal ein Beispiel in einem Buch gesehen, wo die Schleifenvariable elem hieß?
-
Mit C++ 11 wurde ja eine zusätzliche for-Syntax eingeführt mit der man Arrays oder Container bequem und sicher durchlaufen kann, Beispiel :
int werte[10] = {1, 2, 3, 4, 5, 6, 7, ,8 ,9 10}; int summe = 0; for(int elem : werte) { summe += elem; }
-
My_Ouzo schrieb:
Mit C++ 11 wurde ja eine zusätzliche for-Syntax eingeführt mit der man Arrays oder Container bequem und sicher durchlaufen kann, Beispiel :
int werte[10] = {1, 2, 3, 4, 5, 6, 7, ,8 ,9 10}; int summe = 0; for(int elem : werte) { summe += elem; }
Ja, das geht aber auch mit wilhelm
int werte[10] = {1, 2, 3, 4, 5, 6, 7, ,8 ,9 10}; int summe = 0; for(int wilhelm : werte) { summe += wilhelm; }
-
Ja, vor C++11 musst du halt mehr schreiben.
Geht aber auch ohne Probleme.
-
wusst ich garnicht dass man anstatt elem auch willhelm schreiben kann , so stand es zumindest in meinem Buch.
Trotzdem nice, dass es günstige Alternativen gibt.Wenn noch jemand sicher weiß on man C++ 11 in VC++ 2012 verwenden kann, dann wäre ich trotzdem dankbar dafür. Ich benutze halt Win Vista und leider läuft weder VC++ 13 noch 12.
-
Stop das geht auch in MSVC10.
Erstmal:
My_Ouzo schrieb:
Wenn noch jemand sicher weiß on man C++ 11 in VC++ 2012 verwenden kann, dann wäre ich trotzdem dankbar dafür. Ich benutze halt Win Vista und leider läuft weder VC++ 13 noch 12.
Ja geht.
So und in Visual Studio 2010 geht das auch, aber die Syntax ist anders:
std::vector<int> vec; for each(int x in vec) { std::cout << x << std::endl; }
(bin mir über die genaue Syntax nicht mehr ganz sicher, musst mal probieren)
Aber das ist kein Standard C++ !!
-
Wieso kannst du nicht einfach VS 2013 verwenden? 2010 is ja bald schon wieder steinalt...
-
dot schrieb:
Wieso kannst du nicht einfach VS 2013 verwenden? 2010 is ja bald schon wieder steinalt...
Weil 2013 nicht auf Vista läuft.
-
Dann soller aufrüsten auf Win 7 oder 8
Vista is genauso alt und wird nichtmals mehr supported von M$
-
Skym0sh0 schrieb:
Dann soller aufrüsten auf Win 7 oder 8
Vista is genauso alt und wird nichtmals mehr supported von M$Das stimmt so nicht, der Vista-Support wurde verlängert und läuft bis 2017 oder 2018 (ganz sicher bin ich mir jetzt nicht). Dennoch würde auch ich zu einem Systemwechsel raten (7 oder 8.1).
-
Sogar XP wird noch mit Updates versorgt... Noch zwei Monate
-
Skym0sh0 schrieb:
So und in Visual Studio 2010 geht das auch, aber die Syntax ist anders:
std::vector<int> vec; for each(int x in vec) { std::cout << x << std::endl; }
(bin mir über die genaue Syntax nicht mehr ganz sicher, musst mal probieren)
Das ist IIRC C++/CLI. Macht der Compiler das auch im Native-Modus?
-
Bashar schrieb:
Macht der Compiler das auch im Native-Modus?
Ja,
for each
ist ne/cli
-unabhängige Extension.
-
Also erstmal danke für die "for each()" Syntax , ich war heut etwas inaktiv deshalb hab ich eure Beiträge erst jetzt gelesen. Zu Win Vista, natürlich werde ich Vista in der Zukunft mit Win 7 ersetzten,... ein Problem war, dass das Upgrade von Vista auf 7 nicht so funktioniert hat wie es sollte, so muss ich im späteren Win7 nach der Deinstallation von Vista installieren. Ein anderer Punkt ist , dass ich im Besitz einer Notebooks ( Win Vista ) und eines Desktop PCs ( Win 7 ) bin, und der Austausch von Quellcode zu Problemen füren kann wenn dieser nicht nach dem C++ Standard den beide PCs unterstützen geschrieben ist. Trotzdem ist es schön in einem solchen Forum zu sein , danke für eure Hilfe.
-
std::vector<int> vec; BOOST_FOREACH(int x, vec) { std::cout << x << std::endl; }
-
std::vector<int> v; std::for_each(begin(v), end(v), [](int x){ ... ]);