Visual C ++ 10 wird mit stdlib.h geliefert, das unter anderem dieses Juwel enthält:
%Vor% ein geschickter Vorlagentrick zum Ableiten der Array-Größe und verhindern, dass Zeiger in __countof
übergeben werden .
Was ist der Zweck von + 0
in der Makrodefinition? Welches Problem löst es?
Zitat STL von hier
Ich habe diese Änderung vorgenommen; Normalerweise hacke ich das CRT nicht, aber dieses war es trivial. Das + 0 stummt eine unechte "Warnung C6260: sizeof * sizeof ist normalerweise falsch. Wollten Sie eine Zeichenzahl oder ein Byte verwenden? zählen? "aus / analysieren, wenn jemand schreibt _countof (arr) * sizeof (T).
Was ist der Zweck von + 0 in der Makrodefinition? Welches Problem tut es lösen?
Ich glaube nicht, dass es irgendein Problem löst. Es könnte verwendet werden, um einige Warnungen, wie in einer anderen Antwort erwähnt, zum Schweigen zu bringen.
Zu beachten ist, dass die Array-Größe zur Kompilierzeit (persönlich finde ich sie besser lesbar) eine andere Möglichkeit ist:
%Vor%[P.S .: Betrachten Sie dies als Kommentar]
Tags und Links macros arrays c++ visual-c++ templates