I am trying to use Linderdaum Engine and found there many strange declarations like:
class scriptfinal netexportable ClassName: public iObject
These strange names scriptfinal and netexportable are macros. But they are defined to be empty.
Why someone can need this kind of defines?
They’re empty so that the C++ compiler won’t care about them.
The Linderdaum Engine preprocesses the C++ sources in order to generate meta-information about the classes.
Those macros are most likely used by their preprocessor to generate information for their scripting language (
scriptfinal) and .NET serialization code (netexportable).