C++ Probleme mit 64bit QT und VS. QT64bit ohne VS?

Aber gut dann nimmt man std::array oder vector und legt das klassiche Array ad acta und genießt die Vorteile eines Standardcontainers
Man nimmt selbstverständlich immer genau das Array, das man braucht. Bei statischen längen hat std:array oder auch std::vector keine Vorteile und das normale ist performanter. ;)
 
T_55 schrieb:
Lustig ist, dass plötzlich keine variablen Array-Längen mehr akzeptiert werden. Das ging mit mingw ohne Probleme.

Variable-length arrays (VLA) ist ein C99, aber kein C++-Standard.
Variable-length arrays in C99 were basically a misstep. In order to support VLAs, C99 had to make the following concessions to common sense ...
(siehe http://stackoverflow.com/questions/1887097/why-arent-variable-length-arrays-part-of-the-c-standard)
 
sdwaroc schrieb:
[...] Bei statischen längen hat std:array oder auch std::vector keine Vorteile und das normale ist performanter. ;)
Nur um das kurz klarzustellen. C-Style arrays sind nicht performanter als std::array. std::arrays haben einen compile-time overhead, aber keinen runtime overhead. Man kann und sollte deshalb so oft wie möglich std::array einem C-Style array vorziehen. std::vector ist ein ganz anderes Thema, da es nicht statisch ist und somit auch für andere Zwecke gedacht ist.

Gruß
BlackMark
 
Ich sehe gerade das std::array hat genau die gleiche EInschränkung wie das C-Style-Array was Laufzeitabhängige Größe angeht. Also bleibt nur noch vector wenn die Größe nicht zur Kompilerzeit feststeht. Also hat man mit variabler Array-Länge immer ein Performancekompromiss.
 
Yes.

Nur um das kurz klarzustellen. C-Style arrays sind nicht performanter als std::array. std::arrays haben einen compile-time overhead, aber keinen runtime overhead. Man kann und sollte deshalb so oft wie möglich std::array einem C-Style array vorziehen. std::vector ist ein ganz anderes Thema, da es nicht statisch ist und somit auch für andere Zwecke gedacht ist.
Da hast du vollkommen Recht. Komme aus der OpenCL-Ecke und habe mir daher angewöhnt die Standard-Libs zu vermeiden, da (bis dato) nicht kompatibel.
 
Zurück
Oben