Makro?
-
Habe gerade in den Compiler Codes von Facebook folgendes Makro gefunden:
#define NEW_STMT(cls, e...) \ cls##Ptr(new cls(BlockScopePtr(), getLocation(), ##e))Dumme Frage, aber was bedeutet dieses "e..."?

-
Das ist eine Erweiterung des GNU-Präprozessors, die es erlaubt, __VA_ARGS__ einen anderen Namen zu geben. Der Code ist äquivalent zu
#define NEW_STMT(cls, ...) \ cls##Ptr(new cls(BlockScopePtr(), getLocation(), ##__VA_ARGS__))Das ## vor e (bzw. __VA_ARGS__) ist da eigentlich unnötig. Keine Ahnung, was man sich dabei gedacht hat.
Zu variadischen Makros allgemein siehe auch http://gcc.gnu.org/onlinedocs/cpp/Variadic-Macros.html
-
Bei Facebook is nicht nur die Seite scheisse, sondern auch der Code...
-
@seldon Danke für die Info!
SocialHypeBullshit schrieb:
Bei Facebook is nicht nur die Seite scheisse, sondern auch der Code...
Dazu kann ich nichts sagen, ich kenne nur den Code

-
Kannst du mir bitte sagen, wo du den Code herhast? Würd ich mir auch mal gern anschaun'.
-
Hacker schrieb:
Kannst du mir bitte sagen, wo du den Code herhast? Würd ich mir auch mal gern anschaun'.
Vermutlich stammt der Code aus hiphop: https://github.com/facebook/hiphop-php